-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocs.xml
2178 lines (2037 loc) · 656 KB
/
docs.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<root><category name="any"><method category="any" name="!=" variadic="false"><return type="Value₂|nil"/><parameters><parameter name="Value₁" type="any"/><parameter name="Value₂" type="any"/></parameters><description>Returns <mini>Value₂</mini> if <mini>Value₁</mini> and <mini>Value₂</mini> are not exactly the same instance and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name="!=" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ != Argᵢ</mini> for i = 2, ..., n and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name="#" variadic="false"><return type="integer"/><parameters><parameter name="Value" type="any"/></parameters><description>Returns a hash for <mini>Value</mini> for use in lookup tables, etc.
</description><examples/></method><method category="any" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="any"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="any" name=":in" variadic="false"><return type="Value|nil"/><parameters><parameter name="Value" type="any"/><parameter name="Type" type="type"/></parameters><description>Returns <mini>Value</mini> if it is an instance of <mini>Type</mini> or a type that inherits from <mini>Type</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name=":max" variadic="false"><return type="any"/><parameters><parameter name="A" type="any"/><parameter name="B" type="any"/></parameters><description>Returns <mini>A</mini> if <mini>A > B</mini> and <mini>B</mini> otherwise.
</description><examples/></method><method category="any" name=":min" variadic="false"><return type="any"/><parameters><parameter name="A" type="any"/><parameter name="B" type="any"/></parameters><description>Returns <mini>A</mini> if <mini>A < B</mini> and <mini>B</mini> otherwise.
</description><examples/></method><method category="any" name="<" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ < Arg₂ < ... < Argₙ</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name="<=" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ <= Arg₂ <= ... <= Argₙ</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Value₁" type="any"/><parameter name="Value₂" type="any"/></parameters><description>Compares <mini>Value₁</mini> and <mini>Value₂</mini> and returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini>.
This comparison is based on the types and internal addresses of <mini>Value₁</mini> and <mini>Value₂</mini> and thus only has no persistent meaning.
</description><examples/></method><method category="any" name="=" variadic="false"><return type="Value₂|nil"/><parameters><parameter name="Value₁" type="any"/><parameter name="Value₂" type="any"/></parameters><description>Returns <mini>Value₂</mini> if <mini>Value₁</mini> and <mini>Value₂</mini> are exactly the same instance and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name="=" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ = Arg₂ = ... = Argₙ</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name=">" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ > Arg₂ > ... > Argₙ</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="any" name=">=" variadic="true"><return type="any|nil"/><parameters><parameter name="Arg₁" type="any"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="any"/></parameters><description>Returns <mini>Argₙ</mini> if <mini>Arg₁ >= Arg₂ >= ... >= Argₙ</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><type name="any"><parents/><description>Base type for all values.
</description><examples/></type></category><category name="sequence"><method category="sequence" name="&" variadic="false"><return type="Sequence"/><parameters><parameter name="Sequence₁" type="sequence"/><parameter name="Sequence₂" type="sequence"/></parameters><description>Returns an sequence that produces the values from <mini>Sequence₁</mini> followed by those from <mini>Sequence₂</mini>.
</description><examples><code>list(1 .. 3 & "cake")</code><result>[1, 2, 3, "c", "a", "k", "e"]</result></examples></method><method category="sequence" name="&" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="integer::interval"/><parameter name="Arg₂" type="integer::interval"/></parameters><description/><examples/></method><method category="sequence" name="&" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="integer::range"/><parameter name="Arg₂" type="integer::range"/></parameters><description/><examples/></method><method category="sequence" name="&" variadic="false"><return type="Sequence"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns an sequence that repeatedly produces the values from <mini>Sequence</mini> (for use with <mini>limit</mini>).
</description><examples><code>list(&(1 .. 3) limit 10)</code><result>[1, 2, 3, 1, 2, 3, 1, 2, 3, 1]</result></examples></method><method category="sequence" name="->" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(K₁, F(V₁)), ..., (Kₙ, F(Vₙ))</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini>.
</description><examples/></method><method category="sequence" name="->!" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(K₁, F ! V₁), ..., (Kₙ, F ! Vₙ)</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini>.
</description><examples><code>map({"A" is [1, 2], "B" is [3, 4], "C" is [5, 6]} ->! +)</code><result>{"A" is 3, "B" is 7, "C" is 11}</result></examples></method><method category="sequence" name="->!?" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(Kⱼ, Vⱼ), ...</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini> and <mini>F ! Vⱼ</mini> returns non-<mini>nil</mini>.
</description><examples><code>map({"A" is [1, 2], "B" is [3, 3], "C" is [5, 6]} ->!? !=)</code><result>{"A" is [1, 2], "C" is [5, 6]}</result></examples></method><method category="sequence" name="->>" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Function" type="function"/></parameters><description>Returns a new sequence that generates the keys and values from <mini>Function(Value)</mini> for each value generated by <mini>Sequence</mini>.
</description><examples><code>list(1 .. 5 ->> (1 .. _))</code><result>[1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]</result></examples></method><method category="sequence" name="->?" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(Kⱼ, Vⱼ), ...</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini> and <mini>F(Vⱼ)</mini> returns non-<mini>nil</mini>.
</description><examples><code>list(1 .. 10 ->? (2 | _))</code><result>[2, 4, 6, 8, 10]</result></examples></method><method category="sequence" name="->|" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(Kⱼ, Vⱼ), ...</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini> while <mini>F(Vⱼ)</mini> returns non-<mini>nil</mini>.
</description><examples><code>list(1 .. 10 ->? (5 !| _))</code><result>[1, 2, 3, 4, 6, 7, 8, 9]</result><code>list(1 .. 10 ->| (5 !| _))</code><result>[1, 2, 3, 4]</result></examples></method><method category="sequence" name="//" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence that produces <mini>V₁</mini>, <mini>Fn(V₁, V₂)</mini>, <mini>Fn(Fn(V₁, V₂), V₃)</mini>, ... .
.. deprecated:: 2.9.0
Use <mini>distill</mini> instead.
</description><examples><code>list(1 .. 10 // +)</code><result>[1, 3, 6, 10, 15, 21, 28, 36, 45, 55]</result></examples></method><method category="sequence" name="//" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Initial" type="any"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence that produces <mini>Initial</mini>, <mini>Fn(Initial, V₁)</mini>, <mini>Fn(Fn(Initial, V₁), V₂)</mini>, ... .
.. deprecated:: 2.9.0
Use <mini>distill</mini> instead.
</description><examples><code>list(1 .. 10 // (10, +))</code><result>[11, 13, 16, 20, 25, 31, 38, 46, 55, 65]</result></examples></method><method category="sequence" name=":after" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Value" type="any"/></parameters><description>Returns an sequence that skips initial values not equal to <mini>Value</mini> and skips <mini>Value</mini> itself once.
</description><examples><code>list("banana")</code><result>["b", "a", "n", "a", "n", "a"]</result><code>list("banana" after "n")</code><result>["a", "n", "a"]</result></examples></method><method category="sequence" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="real::range"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="sequence" name=":append" variadic="false"><return type="some|nil"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Sequence" type="sequence"/><parameter name="Separator" type="string"/></parameters><description>Appends the values generated by <mini>Sequence</mini> to <mini>Buffer</mini> separated by <mini>Separator</mini>.
</description><examples/></method><method category="sequence" name=":apply" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Calls <mini>Fn(Key, Value)</mini> for each key and value produced by <mini>Sequence</mini>, then returns <mini>Sequence</mini>.
</description><examples/></method><method category="sequence" name=":before" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="sequence"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><method category="sequence" name=":chunk" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="sequence"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="sequence" name=":find" variadic="false"><return type="any|nil"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Value" type="any"/></parameters><description>Returns the first key generated by <mini>Sequence</mini> with correspding value <mini>= Value</mini>.
</description><examples/></method><method category="sequence" name=":first" variadic="false"><return type="any|nil"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the first value produced by <mini>Sequence</mini>.
</description><examples><code>first("cake")</code><result>"c"</result><code>first([])</code><result>nil</result></examples></method><method category="sequence" name=":first2" variadic="false"><return type="tuple(any, any)|nil"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the first key and value produced by <mini>Sequence</mini>.
</description><examples><code>first2("cake")</code><result>(1, c)</result><code>first2([])</code><result>nil</result></examples></method><method category="sequence" name=":from" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Value" type="any"/></parameters><description>Returns an sequence that skips initial values not equal to <mini>Value</mini>.
</description><examples><code>list("banana")</code><result>["b", "a", "n", "a", "n", "a"]</result><code>list("banana" from "n")</code><result>["n", "a", "n", "a"]</result></examples></method><method category="sequence" name=":generate" variadic="false"><return type="function"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Function" type="function"/></parameters><description>Returns a new function that returns <mini>Function(Key, Value)</mini> where <mini>Key</mini> and <mini>Value</mini> are the next key-value pair generated by <mini>Sequence</mini>. Once <mini>Sequence</mini> is exhausted, the function returns <mini>nil</mini>.
</description><examples><code>let f := "cat" generate tuple</code><result><generator></result><code>f()</code><result>(1, c)</result><code>f()</code><result>(2, a)</result><code>f()</code><result>(3, t)</result><code>f()</code><result>nil</result><code>f()</code><result>nil</result></examples></method><method category="sequence" name=":group" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="sequence"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="sequence" name=":join" variadic="false"><return type="string"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Separator" type="string"/></parameters><description>Joins the elements of <mini>Sequence</mini> into a string using <mini>Separator</mini> between elements.
</description><examples><code>(1 .. 10):join</code><result>"12345678910"</result></examples></method><method category="sequence" name=":join" variadic="false"><return type="string"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Joins the elements of <mini>Sequence</mini> into a string.
</description><examples><code>1 .. 10 join ","</code><result>"1,2,3,4,5,6,7,8,9,10"</result></examples></method><method category="sequence" name=":key" variadic="false"><return type="any"/><parameters><parameter name="Iterator" type="iterator"/></parameters><description>Returns the current key produced by <mini>Iterator</mini>.
</description><examples/></method><method category="sequence" name=":last" variadic="false"><return type="any|nil"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the last value produced by <mini>Sequence</mini>.
</description><examples><code>last("cake")</code><result>"e"</result><code>last([])</code><result>nil</result></examples></method><method category="sequence" name=":last2" variadic="false"><return type="tuple(any, any)|nil"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the last key and value produced by <mini>Sequence</mini>.
</description><examples><code>last2("cake")</code><result>(4, e)</result><code>last2([])</code><result>nil</result></examples></method><method category="sequence" name=":limit" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Limit" type="integer"/></parameters><description>Returns an sequence that produces at most <mini>Limit</mini> values from <mini>Sequence</mini>.
</description><examples><code>list(1 .. 10)</code><result>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</result><code>list(1 .. 10 limit 5)</code><result>[1, 2, 3, 4, 5]</result></examples></method><method category="sequence" name=":next" variadic="false"><return type="iterator|nil"/><parameters><parameter name="Iterator" type="iterator"/></parameters><description>Advances <mini>Iterator</mini>, returning <mini>nil</mini> if it is finished.
</description><examples/></method><method category="sequence" name=":provided" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns an sequence that stops when <mini>Fn(Value)</mini> is <mini>nil</mini>.
</description><examples><code>list("banana")</code><result>["b", "a", "n", "a", "n", "a"]</result><code>list("banana" provided (_ != "n"))</code><result>["b", "a"]</result></examples></method><method category="sequence" name=":random" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="type"/></parameters><description/><examples/></method><method category="sequence" name=":random" variadic="true"><return type="any|nil"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a random value produced by <mini>Sequence</mini>.
</description><examples><code>random("cake")</code><result>"c"</result><code>random([])</code><result>nil</result></examples></method><method category="sequence" name=":repeat" variadic="false"><return type="sequence"/><parameters><parameter name="Function" type="function"/></parameters><description>Returns a sequence that generates the result of calling <mini>Function()</mini> at each iteration until <mini>nil</mini> is returned.
.. deprecated:: 2.9.0
Use <mini>^</mini> instead.
</description><examples><code>let L := [1, 2, 3, 4]
list(L:pull(_):repeat)</code><result>[4, 3, 2, 1]</result></examples></method><method category="sequence" name=":skip" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Skip" type="integer"/></parameters><description>Returns an sequence that skips the first <mini>Skip</mini> values from <mini>Sequence</mini> and then produces the rest.
</description><examples><code>list(1 .. 10)</code><result>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</result><code>list(1 .. 10 skip 5)</code><result>[6, 7, 8, 9, 10]</result></examples></method><method category="sequence" name=":skipuntil" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns an sequence that skips initial values for which which <mini>Fn(Value)</mini> is <mini>nil</mini>.
</description><examples><code>list("banana")</code><result>["b", "a", "n", "a", "n", "a"]</result><code>list("banana" skipuntil (_ != "b"))</code><result>["a", "n", "a", "n", "a"]</result></examples></method><method category="sequence" name=":split" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="sequence"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="sequence" name=":value" variadic="false"><return type="any"/><parameters><parameter name="Iterator" type="iterator"/></parameters><description>Returns the current value produced by <mini>Iterator</mini>.
</description><examples/></method><method category="sequence" name="=>" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(K₁, F(K₁, V₁)), ..., (Kₙ, F(Kₙ, Vₙ))</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini>.
</description><examples><code>map("cake" => *)</code><result>{1 is "c", 2 is "aa", 3 is "kkk", 4 is "eeee"}</result></examples></method><method category="sequence" name="=>" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F₁" type="function"/><parameter name="F₂" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(F₁(K₁, V₁), F₂(K₁, V₁)), ..., (F₁(Kₙ, Vₙ), F₂(Kₙ, Vₙ))</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini>.
</description><examples><code>map("cake" => (tuple, *))</code><result>{(1, c) is "c", (2, a) is "aa", (3, k) is "kkk", (4, e) is "eeee"}</result></examples></method><method category="sequence" name="=>>" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Function" type="function"/></parameters><description>Returns a new sequence that generates the keys and values from <mini>Function(Key, Value)</mini> for each key and value generated by <mini>Sequence</mini>.
</description><examples><code>list("cake" =>> *)</code><result>["c", "a", "a", "k", "k", "k", "e", "e", "e", "e"]</result></examples></method><method category="sequence" name="=>?" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(Kⱼ, Vⱼ), ...</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini> and <mini>F(Kⱼ, Vⱼ)</mini> returns non-<mini>nil</mini>.
</description><examples><code>let M := map(1 .. 10 -> fun(X) X ^ 2 % 10)</code><result>{1 is 1, 2 is 4, 3 is 9, 4 is 6, 5 is 5, 6 is 6, 7 is 9, 8 is 4, 9 is 1, 10 is 0}</result><code>map(M =>? !=)</code><result>{2 is 4, 3 is 9, 4 is 6, 7 is 9, 8 is 4, 9 is 1, 10 is 0}</result></examples></method><method category="sequence" name="=>|" variadic="false"><return type="sequence"/><parameters><parameter name="Base" type="sequence"/><parameter name="F" type="function"/></parameters><description>Returns a chained sequence equivalent to <mini>(Kⱼ, Vⱼ), ...</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Base</mini> while <mini>F(Kⱼ, Vⱼ)</mini> returns non-<mini>nil</mini>.
</description><examples><code>let M := map(1 .. 10 -> fun(X) X ^ 2 % 10)</code><result>{1 is 1, 2 is 4, 3 is 9, 4 is 6, 5 is 5, 6 is 6, 7 is 9, 8 is 4, 9 is 1, 10 is 0}</result><code>map(M =>? fun(K, V) K + V < 15)</code><result>{1 is 1, 2 is 4, 3 is 9, 4 is 6, 5 is 5, 6 is 6, 8 is 4, 9 is 1, 10 is 0}</result><code>map(M =>| fun(K, V) K + V < 15)</code><result>{1 is 1, 2 is 4, 3 is 9, 4 is 6, 5 is 5, 6 is 6}</result></examples></method><method category="sequence" name="@" variadic="false"><return type="sequence"/><parameters><parameter name="Value" type="any"/></parameters><description>Returns an infinite sequence that repeatedly produces <mini>Value</mini>. Should be used with <mini>:limit</mini> or paired with a finite sequence in <mini>zip</mini>, <mini>weave</mini>, etc.
</description><examples><code>list(@1 limit 10)</code><result>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</result></examples></method><method category="sequence" name="@" variadic="false"><return type="sequence"/><parameters><parameter name="Initial" type="any"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence that produces <mini>Initial</mini>, <mini>Fn(Initial)</mini>, <mini>Fn(Fn(Initial))</mini>, ... stopping when <mini>Fn(Last)</mini> returns <mini>nil</mini>.
</description><examples><code>list(1 @ (_ + 1) limit 10)</code><result>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</result></examples></method><type name="chained"><parents><parent type="function"/><parent type="sequence"/></parents><description>A chained function or sequence, consisting of a base function or sequence and any number of additional functions or filters.
When used as a function or sequence, the base is used to produce an initial result, then the additional functions are applied in turn to the result.
Filters do not affect the result but will shortcut a function call or skip an iteration if <mini>nil</mini> is returned. I.e. filters remove values from a sequence that fail a condition without affecting the values that pass.
</description><examples/></type><type name="chunk"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="grouped"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="sequence"><parents/><description>The base type for any sequence value.
</description><examples/></type><type name="split"><parents><parent type="sequence"/></parents><description/><examples/></type><method category="sequence" name="[]" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="chained"/></parameters><description/><examples/></method><method category="sequence" name="^" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Function" type="function"/></parameters><description>Returns a new sequence that generates the keys and values from <mini>Function(Value)</mini> for each value generated by <mini>Sequence</mini>.
.. deprecated:: 2.5.0
Use <mini>->></mini> instead.
</description><examples><code>list(1 .. 5 ^ (1 .. _))</code><result>[1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]</result></examples></method><method category="sequence" name="^" variadic="false"><return type="sequence"/><parameters><parameter name="Function" type="function"/></parameters><description>Returns a sequence that generates the result of calling <mini>Function()</mini> at each iteration until <mini>nil</mini> is returned.
</description><examples><code>let L := [1, 2, 3, 4]
list(^fun L:pull)</code><result>[4, 3, 2, 1]</result></examples></method><function name="all"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns <mini>nil</mini> if <mini>nil</mini> is produced by <mini>Sequence</mini>. Otherwise returns <mini>some</mini>. If <mini>Sequence</mini> is empty, then <mini>some</mini> is returned.
</description><examples><code>all([1, 2, 3, 4])</code><result>some</result><code>all([1, 2, nil, 4])</code><result>nil</result><code>all([])</code><result>some</result></examples></function><function name="batch"><return/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Size" type="integer"/><parameter name="Shift?" type="integer"/><parameter name="Function" type="function"/></parameters><description>Returns a new sequence that calls <mini>Function</mini> with each batch of <mini>Size</mini> values produced by <mini>Sequence</mini> and produces the results. If a <mini>Shift</mini> is provided then <mini>Size - Shift</mini> values of each batch come from the previous batch.
</description><examples><code>list(batch(1 .. 20, 4, tuple))</code><result>[(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16), (17, 18, 19, 20)]</result><code>list(batch(1 .. 20, 4, 2, tuple))</code><result>[(1, 2, 3, 4), (3, 4, 5, 6), (5, 6, 7, 8), (7, 8, 9, 10), (9, 10, 11, 12), (11, 12, 13, 14), (13, 14, 15, 16), (15, 16, 17, 18), (17, 18, 19, 20)]</result></examples></function><constructor name="chained"><return/><parameters><parameter name="Base" type="any"/><parameter name="Fn₁, ..., Fnₙ" type="function"/></parameters><description>Returns a new chained function or sequence with base <mini>Base</mini> and additional functions or filters <mini>Fn₁, ..., Fnₙ</mini>.
</description><examples><code>let F := chained(fun(X) X + 1, fun(X) X ^ 2)
F(10)</code><result>121</result></examples></constructor><function name="count"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the count of the values produced by <mini>Sequence</mini>. For some types of sequences (e.g. <mini>list</mini>, <mini>map</mini>, etc), the count is simply retrieved. For all other types, the sequence is iterated and the total number of values counted.
</description><examples><code>count([1, 2, 3, 4])</code><result>4</result><code>count(1 .. 10 ->? (2 | _))</code><result>5</result></examples></function><function name="count2"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a map of the values produced by <mini>Sequence</mini> with associated counts.
</description><examples><code>count2("banana")</code><result>{"b" is 1, "a" is 3, "n" is 2}</result></examples></function><function name="distill"><return/><parameters><parameter name="Initial?" type="any"/><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence that produces <mini>Fn(Initial, V₁)</mini>, <mini>Fn(Fn(Initial, V₁), V₂)</mini>, ... if <mini>Initial</mini> is provided, otherwise returns a sequence that produces <mini>V₁</mini>, <mini>Fn(V₁, V₂)</mini>, <mini>Fn(Fn(V₁, V₂), V₃)</mini>, ... .
The resulting sequence always has the same number of values as <mini>Sequence</mini>.
</description><examples><code>list(distill(1 .. 10, +))</code><result>[1, 3, 6, 10, 15, 21, 28, 36, 45, 55]</result><code>list(distill(20, 1 .. 10, +))</code><result>[21, 23, 26, 30, 35, 41, 48, 56, 65, 75]</result></examples></function><function name="dup"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence which produces the values of <mini>Sequence</mini> as both keys and values.
</description><examples><code>map(dup({"A" is 1, "B" is 2, "C" is 3}))</code><result>{1 is 1, 2 is 2, 3 is 3}</result></examples></function><function name="fold"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence that treats alternating values produced by <mini>Sequence</mini> as keys and values respectively.
</description><examples><code>map(fold(1 .. 10))</code><result>{1 is 2, 3 is 4, 5 is 6, 7 is 8, 9 is 10}</result></examples></function><function name="grid"><return/><parameters><parameter name="Sequence₁, ..., Sequenceₙ" type="sequence"/><parameter name="Function" type="any"/></parameters><description>Returns a new sequence that produces <mini>Function(V₁, V₂, ..., Vₙ)</mini> for all possible combinations of <mini>V₁, ..., Vₙ</mini>, where <mini>Vᵢ</mini> are the values produced by <mini>Sequenceᵢ</mini>.
</description><examples><code>list(grid(1 .. 3, "cake", [true, false], tuple))</code><result>[(1, c, true), (1, c, false), (1, a, true), (1, a, false), (1, k, true), (1, k, false), (1, e, true), (1, e, false), (2, c, true), (2, c, false), (2, a, true), (2, a, false), (2, k, true), (2, k, false), (2, e, true), (2, e, false), (3, c, true), (3, c, false), (3, a, true), (3, a, false), (3, k, true), (3, k, false), (3, e, true), (3, e, false)]</result><code>list(grid(1 .. 3, "cake", *))</code><result>["c", "a", "k", "e", "cc", "aa", "kk", "ee", "ccc", "aaa", "kkk", "eee"]</result></examples></function><function name="iterate"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Create an iterator for <mini>Sequence</mini>. Returns <mini>nil</mini> is <mini>Sequence</mini> is empty.
</description><examples/></function><type name="iterator"><parents/><description>An iterator.
</description><examples/></type><function name="key"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence which produces the keys of <mini>Sequence</mini>.
</description><examples><code>list(key({"A" is 1, "B" is 2, "C" is 3}))</code><result>["A", "B", "C"]</result></examples></function><function name="max"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the largest value (using <mini>:max</mini>) produced by <mini>Sequence</mini>.
</description><examples><code>max([1, 5, 2, 10, 6])</code><result>10</result></examples></function><function name="max2"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a tuple with the key and value of the largest value (using <mini>></mini>) produced by <mini>Sequence</mini>. Returns <mini>nil</mini> if <mini>Sequence</mini> is empty.
</description><examples><code>max2([1, 5, 2, 10, 6])</code><result>(4, 10)</result></examples></function><function name="min"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the smallest value (using <mini>:min</mini>) produced by <mini>Sequence</mini>.
</description><examples><code>min([1, 5, 2, 10, 6])</code><result>1</result></examples></function><function name="min2"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a tuple with the key and value of the smallest value (using <mini><</mini>) produced by <mini>Sequence</mini>. Returns <mini>nil</mini> if <mini>Sequence</mini> is empty.
</description><examples><code>min2([1, 5, 2, 10, 6])</code><result>(1, 1)</result></examples></function><function name="pair"><return/><parameters><parameter name="Sequence₁" type="sequence"/><parameter name="Sequence₂" type="sequence"/></parameters><description>Returns a new sequence that produces the values from <mini>Sequence₁</mini> as keys and the values from <mini>Sequence₂</mini> as values.
</description><examples/></function><function name="prod"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the product of the values (using <mini>*</mini>) produced by <mini>Sequence</mini>.
</description><examples><code>prod([1, 5, 2, 10, 6])</code><result>600</result></examples></function><function name="range"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the smallest and largest values (using <mini>:min</mini> and <mini>:max</mini>) produced by <mini>Sequence</mini>.
</description><examples><code>range([1, 5, 2, 10, 6])</code><result>(1, 10)</result></examples></function><function name="reduce"><return/><parameters><parameter name="Initial?" type="any"/><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns <mini>Fn(Fn( ... Fn(Initial, V₁), V₂) ..., Vₙ)</mini> where <mini>Vᵢ</mini> are the values produced by <mini>Sequence</mini>.
If <mini>Initial</mini> is omitted, the first value produced by <mini>Sequence</mini> is used.
</description><examples><code>reduce(1 .. 10, +)</code><result>55</result><code>reduce([], 1 .. 10, :put)</code><result>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</result></examples></function><function name="reduce2"><return/><parameters><parameter name="Initial?" type="any"/><parameter name="Sequence" type="sequence"/><parameter name="Fn" type="function"/></parameters><description>Returns <mini>Fn(Fn( ... Fn(Initial, K₁, V₁), K₂, V₂) ..., Kₙ, Vₙ)</mini> where <mini>Kᵢ</mini> and <mini>Vᵢ</mini> are the keys and values produced by <mini>Sequence</mini>.
If <mini>Initial</mini> is omitted, a tuple with the first key and value produced by <mini>Sequence</mini> is used.
</description><examples><code>reduce2([], "cake", fun(L, K, V) L:put((K, V)))</code><result>[(1, c), (2, a), (3, k), (4, e)]</result></examples></function><function name="some"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the first value produced by <mini>Sequence</mini> that is not <mini>nil</mini>.
</description><examples><code>some([nil, nil, "X", nil])</code><result>"X"</result><code>some([nil, nil, nil, nil])</code><result>nil</result></examples></function><function name="sum"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns the sum of the values (using <mini>+</mini>) produced by <mini>Sequence</mini>.
</description><examples><code>sum([1, 5, 2, 10, 6])</code><result>24</result></examples></function><function name="swap"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence which swaps the keys and values produced by <mini>Sequence</mini>.
</description><examples><code>map(swap("cake"))</code><result>{"c" is 1, "a" is 2, "k" is 3, "e" is 4}</result></examples></function><function name="unfold"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence that treats produces alternatively the keys and values produced by <mini>Sequence</mini>.
</description><examples><code>list(unfold("cake"))</code><result>[1, "c", 2, "a", 3, "k", 4, "e"]</result></examples></function><function name="unique"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns an sequence that returns the unique values produced by <mini>Sequence</mini>. Uniqueness is determined by using a <mini>map</mini>.
</description><examples><code>list(unique("banana"))</code><result>["b", "a", "n"]</result></examples></function><function name="unique1"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns an sequence that returns the unique keys produced by <mini>Sequence</mini>. Uniqueness is determined by using a <mini>map</mini>.
</description><examples><code>list(unique1("banana"))</code><result>["b", "a", "n", "a", "n", "a"]</result></examples></function><function name="unpack"><return/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a new sequence unpacks each value generated by <mini>Sequence</mini> as keys and values respectively.
</description><examples><code>let L := [("A", "a"), ("B", "b"), ("C", "c")]
map(unpack(L))</code><result>{"A" is "a", "B" is "b", "C" is "c"}</result></examples></function><function name="weave"><return/><parameters><parameter name="Sequence₁, ..., Sequenceₙ" type="sequence"/></parameters><description>Returns a new sequence that produces interleaved values <mini>Vᵢ</mini> from each of <mini>Sequenceᵢ</mini>.
The sequence stops produces values when any of the <mini>Sequenceᵢ</mini> stops.
</description><examples><code>list(weave(1 .. 3, "cake"))</code><result>[1, "c", 2, "a", 3, "k"]</result></examples></function><function name="zip"><return/><parameters><parameter name="Sequence₁, ..., Sequenceₙ" type="sequence"/><parameter name="Function" type="any"/></parameters><description>Returns a new sequence that produces <mini>Function(V₁₁, ..., Vₙ₁), Function(V₁₂, ..., Vₙ₂), ...</mini> where <mini>Vᵢⱼ</mini> is the <mini>j</mini>-th value produced by <mini>Sequenceᵢ</mini>.
The sequence stops produces values when any of the <mini>Sequenceᵢ</mini> stops.
</description><examples><code>list(zip(1 .. 3, "cake", tuple))</code><result>[(1, c), (2, a), (3, k)]</result></examples></function><function name="zip2"><return/><parameters><parameter name="Sequence₁, ..., Sequenceₙ" type="sequence"/><parameter name="KeyFn" type="any"/><parameter name="ValueFn" type="any"/></parameters><description>Returns a new sequence that produces <mini>KeyFn(K₁₁, ..., Kₙ₁) - ValueFn(V₁₁, ..., Vₙ₁), ...</mini> where <mini>Kᵢⱼ - Vᵢⱼ</mini> are the <mini>j</mini>-th key and value produced by <mini>Sequenceᵢ</mini>.
The sequence stops produces values when any of the <mini>Sequenceᵢ</mini> stops.
</description><examples><code>map(zip2(1 .. 3, "cake", tuple, tuple))</code><result>{(1, 1) is (1, c), (2, 2) is (2, a), (3, 3) is (3, k)}</result></examples></function></category><category name="type"><method category="type" name="*" variadic="false"><return type="type"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns the closest common parent type of <mini>Type₁</mini> and <mini>Type₂</mini>.
</description><examples/></method><method category="type" name="::" variadic="false"><return type="any|error"/><parameters><parameter name="Type" type="type"/><parameter name="Name" type="string"/></parameters><description>Returns the value of <mini>Name</mini> exported from <mini>Type</mini>.
Returns an error if <mini>Name</mini> is not present.
This allows types to behave as modules.
</description><examples/></method><method category="type" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="type"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="type" name=":constructor" variadic="false"><return type="function"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns the constructor for <mini>Type</mini>.
</description><examples/></method><method category="type" name=":exports" variadic="false"><return type="map"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns a map of all the exports from <mini>Type</mini>.
</description><examples/></method><method category="type" name=":get" variadic="false"><return type="any|nil"/><parameters><parameter name="Ref" type="weak::ref"/></parameters><description/><examples/></method><method category="type" name=":name" variadic="false"><return type="string"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns the name of <mini>Type</mini>.
</description><examples/></method><method category="type" name=":parents" variadic="false"><return type="list"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns a list of the parent types of <mini>Type</mini>.
</description><examples/></method><method category="type" name=":rank" variadic="false"><return type="integer"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns the rank of <mini>Type</mini>, i.e. the depth of its inheritence tree.
</description><examples/></method><method category="type" name="<" variadic="false"><return type="type or nil"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns <mini>Type₂</mini> if <mini>Type₂</mini> is a strict parent of <mini>Type₁</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="type" name="<=" variadic="false"><return type="type or nil"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns <mini>Type₂</mini> if <mini>Type₂</mini> is a parent of <mini>Type₁</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="type" name=">" variadic="false"><return type="type or nil"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns <mini>Type₂</mini> if <mini>Type₂</mini> is a strict sub-type of <mini>Type₁</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="type" name=">=" variadic="false"><return type="type or nil"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns <mini>Type₂</mini> if <mini>Type₂</mini> is a sub-type of <mini>Type₁</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="type" name="?" variadic="false"><return type="type"/><parameters><parameter name="Type" type="type::union"/></parameters><description>Returns a union interface of <mini>Type₁</mini> and <mini>Type₂</mini>.
</description><examples/></method><method category="type" name="?" variadic="false"><return type="type"/><parameters><parameter name="Type" type="type"/></parameters><description>Returns a union interface of <mini>Type</mini> and <mini>type(nil)</mini>.
</description><examples/></method><type name="type"><parents><parent type="function"/></parents><description>Type of all types.
Every type contains a set of named exports, which allows them to be used as modules.
</description><examples/></type><method category="type" name="[]" variadic="true"><return type="type"/><parameters><parameter name="Base" type="type"/><parameter name="Type₁, ..., Typeₙ" type="type"/></parameters><description>Returns the generic type <mini>Base[Type₁, ..., Typeₙ]</mini>.
</description><examples/></method><constructor name="type"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns the type of <mini>Value</mini>.
</description><examples/></constructor><type name="weakref"><parents/><description/><examples/></type><constructor name="weakref"><return/><parameters><parameter name="Value" type="any"/></parameters><description/><examples/></constructor><method category="type" name="|" variadic="false"><return type="type"/><parameters><parameter name="Type₁" type="type::union"/><parameter name="Type₂" type="type"/></parameters><description>Returns a union interface of <mini>Type₁</mini> and <mini>Type₂</mini>.
</description><examples/></method><method category="type" name="|" variadic="false"><return type="type"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type"/></parameters><description>Returns a union interface of <mini>Type₁</mini> and <mini>Type₂</mini>.
</description><examples/></method><method category="type" name="|" variadic="false"><return type="type"/><parameters><parameter name="Type₁" type="type"/><parameter name="Type₂" type="type::union"/></parameters><description>Returns a union interface of <mini>Type₁</mini> and <mini>Type₂</mini>.
</description><examples/></method></category><category name="general"><method category="general" name=":WeakMapT" variadic="false"><return type=""/><parameters/><description/><examples/></method><method category="general" name=":alt" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":alt" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="weakmaptoken"/></parameters><description/><examples/></method><method category="general" name=":button" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":buttons" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":canvasX" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":canvasY" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":clientX" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":clientY" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":code" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":const" variadic="false"><return type="any"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Value" type="any"/></parameters><description>Default visitor implementation, just returns <mini>Value</mini>.
</description><examples/></method><method category="general" name=":copy" variadic="false"><return type="any"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Value" type="any"/></parameters><description>Default visitor implementation, just returns <mini>Value</mini>.
</description><examples/></method><method category="general" name=":ctrl" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":ctrl" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":insert" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="weakmap"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="general" name=":key" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":locale" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":location" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":meta" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":meta" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":movementX" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":movementY" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":repeat" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":screenX" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":screenY" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":shift" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":shift" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":targetX" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":targetY" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":timestamp" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="mouseevent"/></parameters><description/><examples/></method><method category="general" name=":timestamp" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="keyboardevent"/></parameters><description/><examples/></method><method category="general" name=":visit" variadic="false"><return type="any"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Value" type="any"/></parameters><description>Default visitor implementation, just returns <mini>nil</mini>.
</description><examples/></method><type name="event"><parents/><description/><examples/></type><type name="focusevent"><parents><parent type="event"/></parents><description/><examples/></type><type name="keyboardevent"><parents><parent type="event"/></parents><description/><examples/></type><type name="visitor"><parents><parent type="function"/></parents><description>Used to apply a transformation recursively to values.
<mini>fun (V: visitor)(Value: any, Result: any): any</mini>
Adds the pair <mini>(Value, Result)</mini> to <mini>V</mini>'s cache and returns <mini>Result</mini>.
<mini>fun (V: visitor)(Value: any): any</mini>
Visits <mini>Value</mini> with <mini>V</mini> returning the result.
</description><examples/></type><type name="mouseevent"><parents><parent type="event"/></parents><description/><examples/></type><type name="uievent"><parents><parent type="event"/></parents><description/><examples/></type><type name="weakmap"><parents/><description/><examples/></type><type name="weakmaptoken"><parents/><description/><examples/></type><type name="wheelevent"><parents><parent type="event"/></parents><description/><examples/></type><function name="assign"><return/><parameters><parameter name="Var" type="any"/><parameter name="Value" type="any"/></parameters><description>Functional equivalent of <mini>Var := Value</mini>.
</description><examples/></function><function name="call"><return/><parameters><parameter name="Fn" type="any"/><parameter name="Arg₁..." type="any"/><parameter name="Argₙ" type="any"/></parameters><description>Returns <mini>Fn(Arg₁, ..., Argₙ)</mini>.
</description><examples/></function><function name="cas"><return/><parameters><parameter name="Var" type="any"/><parameter name="Old" type="any"/><parameter name="New" type="any"/></parameters><description>If the value of <mini>Var</mini> is *identically* equal to <mini>Old</mini>, then sets <mini>Var</mini> to <mini>New</mini> and returns <mini>New</mini>. Otherwise leaves <mini>Var</mini> unchanged and returns <mini>nil</mini>.
</description><examples><code>var X := 10
cas(X, 10, 11)</code><result>11</result><code>X</code><result>11</result><code>cas(X, 20, 21)</code><result>nil</result><code>X</code><result>11</result></examples></function><function name="copy"><return/><parameters><parameter name="Value" type="any"/><parameter name="Fn?" type="function"/></parameters><description>Returns a copy of <mini>Value</mini> using a new <mini>copy</mini> instance which applies <mini>Fn(Copy, Value)</mini> to each value. If omitted, <mini>Fn</mini> defaults to <mini>:copy</mini>.
</description><examples/></function><function name="deref"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns the dereferenced value of <mini>Value</mini>.
</description><examples/></function><function name="exchange"><return/><parameters><parameter name="Var₁..." type="any"/><parameter name="Varₙ" type="any"/></parameters><description>Assigns <mini>Varᵢ := Varᵢ₊₁</mini> for each <mini>1 <= i < n</mini> and <mini>Varₙ := Var₁</mini>.
</description><examples/></function><function name="findall"><return/><parameters><parameter name="Value" type="any"/><parameter name="Filter?" type="boolean|type"/></parameters><description>Returns a list of all unique values referenced by <mini>Value</mini> (including <mini>Value</mini>).
</description><examples/></function><function name="isconstant"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns <mini>some</mini> if it is a constant (i.e. directly immutable and not referencing any mutable values), otherwise returns <mini>nil</mini>.
</description><examples><code>isconstant(1)</code><result>1</result><code>isconstant(1.5)</code><result>1.5</result><code>isconstant("Hello")</code><result>"Hello"</result><code>isconstant(true)</code><result>true</result><code>isconstant([1, 2, 3])</code><result>nil</result><code>isconstant((1, 2, 3))</code><result>(1, 2, 3)</result><code>isconstant((1, [2], 3))</code><result>nil</result></examples></function><function name="mlafter"><return/><parameters><parameter name="Arg₁" type="number"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></function><function name="mlevent"><return/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="function"/></parameters><description/><examples/></function><function name="mlprint"><return/><parameters/><description/><examples/></function><function name="replace"><return/><parameters><parameter name="Var₁..." type="any"/><parameter name="Varₙ" type="any"/><parameter name="Value" type="any"/></parameters><description>Assigns <mini>Varᵢ := Varᵢ₊₁</mini> for each <mini>1 <= i < n</mini> and <mini>Varₙ := Value</mini>. Returns the old value of <mini>Var₁</mini>.
</description><examples/></function><function name="visit"><return/><parameters><parameter name="Value" type="any"/><parameter name="Fn" type="function"/></parameters><description>Returns <mini>Fn(V, Value)</mini> where <mini>V</mini> is a newly created <mini>visitor</mini>.
</description><examples/></function></category><category name="module"><method category="module" name="::" variadic="false"><return type="any"/><parameters><parameter name="Module" type="module"/><parameter name="Name" type="string"/></parameters><description>Imports a symbol from a module.
</description><examples/></method><method category="module" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="module"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="module" name=":exports" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="module"/></parameters><description/><examples/></method><method category="module" name=":path" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="module"/></parameters><description/><examples/></method><type name="module"><parents/><description/><examples/></type></category><category name="external"><method category="external" name="::" variadic="false"><return type="external"/><parameters><parameter name="External" type="external"/><parameter name="Import" type="string"/></parameters><description/><examples/></method><method category="external" name=":add" variadic="false"><return type=""/><parameters><parameter name="Externals" type="external::set"/><parameter name="Name" type="string"/><parameter name="Value" type="any"/></parameters><description/><examples/></method><type name="external::set"><parents/><description/><examples/></type><type name="external"><parents/><description>A placeholder value that can be encoded and replaced on decoding.
</description><examples/></type><constructor name="external"><return/><parameters><parameter name="Name" type="string"/></parameters><description/><examples/></constructor><constructor name="external"><return/><parameters><parameter name="Name" type="string"/></parameters><description/><examples/></constructor><function name="external::add"><return/><parameters><parameter name="Name" type="string"/><parameter name="Value" type="any"/></parameters><description/><examples/></function><function name="external::get"><return/><parameters><parameter name="Name" type="string"/></parameters><description/><examples/></function><constructor category="external" name="external::set" variadic="false"><return type="external::set"/><parameters/><description/><examples/></constructor></category><category name="symbol"><method category="symbol" name=".." variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="symbol"/><parameter name="Arg₂" type="symbol"/></parameters><description/><examples/></method><method category="symbol" name="::" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="symbol"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><type name="symbol::interval"><parents/><description/><examples/></type><type name="symbol"><parents><parent type="function"/></parents><description/><examples/></type></category><category name="memory"><function name="address"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns the internal address of <mini>Value</mini> as an integer.
</description><examples/></function><function name="collect"><return/><parameters/><description>Call garbage collector.
</description><examples/></function><function name="dump"><return/><parameters/><description/><examples/></function><function name="size"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns information about the blocks of memory referenced by <mini>Value</mini>.
</description><examples/></function><function name="trace"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns information about the blocks of memory referenced by <mini>Value</mini>.
</description><examples/></function><function name="usage"><return/><parameters/><description/><examples/></function></category><category name="xml"><method category="xml" name="/" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns a sequence of the children of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name="/" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns a sequence of the children of <mini>Xml</mini> with tag <mini>Tag</mini>.
</description><examples/></method><method category="xml" name="/" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the children of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="/" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ / Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name="/" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the children of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="/" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence of the children of <mini>Xml</mini> for which <mini>Fn(Child)</mini> is non-nil.
</description><examples/></method><method category="xml" name="//" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns a sequence of the recursive children of <mini>Xml</mini> with tag <mini>Tag</mini>.
</description><examples/></method><method category="xml" name="//" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the recursive children of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="//" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns a sequence of the recursive children of <mini>Xml</mini>, including <mini>Xml</mini>.
</description><examples/></method><method category="xml" name="//" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence of the recursive children of <mini>Xml</mini> for which <mini>Fn(Child)</mini> is non-nil.
</description><examples/></method><method category="xml" name="//" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the recursive children of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="//" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ // Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name="::" variadic="false"><return type="string|nil"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Attribute" type="string"/></parameters><description>Returns the value of the <mini>Attribute</mini> attribute of <mini>Parent</mini>.
</description><examples/></method><method category="xml" name=":add_next" variadic="true"><return type="xml"/><parameters><parameter name="Node" type="xml"/><parameter name="Other" type="any"/></parameters><description>Inserts <mini>Other</mini> directly after <mini>Node</mini>.
</description><examples/></method><method category="xml" name=":add_prev" variadic="true"><return type="xml"/><parameters><parameter name="Node" type="xml"/><parameter name="Other" type="any"/></parameters><description>Inserts <mini>Other</mini> directly before <mini>Node</mini>.
</description><examples/></method><method category="xml" name=":append" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="xml::element"/><parameter name="Arg₂" type="xml"/></parameters><description/><examples/></method><method category="xml" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Xml" type="xml::element"/></parameters><description>Appends a string representation of <mini>Xml</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="xml" name=":append" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="xml::element"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="xml" name=":append" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="xml::element"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="map"/></parameters><description/><examples/></method><method category="xml" name=":attributes" variadic="false"><return type="map"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns the attributes of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=":contains" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="String" type="string"/></parameters><description>Equivalent to <mini>Sequence ->? fun(X) X:text:find(String)</mini>.
</description><examples/></method><method category="xml" name=":contains" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Regex" type="regex"/></parameters><description>Equivalent to <mini>Sequence ->? fun(X) X:text:find(Regex)</mini>.
</description><examples/></method><method category="xml" name=":copy" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="xml::text"/></parameters><description/><examples/></method><method category="xml" name=":copy" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="xml::element"/></parameters><description/><examples/></method><method category="xml" name=":empty" variadic="false"><return type="xml"/><parameters><parameter name="Parent" type="xml::element"/></parameters><description>Removes the contents of <mini>Parent</mini>.
</description><examples/></method><method category="xml" name=":grow" variadic="true"><return type="xml"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Children" type="sequence"/></parameters><description>Adds each node generated by <mini>Children</mini> to <mini>Parent</mini> and returns <mini>Parent</mini>.
</description><examples/></method><method category="xml" name=":has" variadic="false"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Fn" type="function"/></parameters><description>Equivalent to <mini>Sequence ->? fun(X) some(Fn(X))</mini>.
</description><examples/></method><method category="xml" name=":index" variadic="false"><return type="integer|nil"/><parameters><parameter name="Node" type="xml"/></parameters><description>Returns the index of <mini>Node</mini> in its parent or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":index" variadic="false"><return type="integer|nil"/><parameters><parameter name="Node" type="xml"/><parameter name="Text" type="boolean"/></parameters><description>Returns the index of <mini>Node</mini> in its parent including or excluding text nodes.
</description><examples/></method><method category="xml" name=":next" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th next sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":next" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":next" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":next" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":next" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ > Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name=":next" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the next sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the parent of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the parent of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ ^ Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th parent of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the parent of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":parent" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the parent of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th prev sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the previous sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ < Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name=":prev" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=":put" variadic="true"><return type="xml"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Child" type="any"/></parameters><description>Adds <mini>Child</mini> to <mini>Parent</mini>.
</description><examples/></method><method category="xml" name=":remove" variadic="false"><return type="xml"/><parameters><parameter name="Node" type="xml"/></parameters><description>Removes <mini>Node</mini> from its parent.
</description><examples/></method><method category="xml" name=":replace" variadic="false"><return type="xml"/><parameters><parameter name="Node₁" type="xml"/><parameter name="Node₂" type="xml"/></parameters><description>Removes <mini>Node₁</mini> from its parent and replaces it with <mini>Node₂</mini>.
</description><examples/></method><method category="xml" name=":set" variadic="false"><return type="xml"/><parameters><parameter name="Xml" type="xml::element"/><parameter name="Attribute" type="string"/><parameter name="Value" type="string"/></parameters><description>Sets the value of attribute <mini>Attribute</mini> in <mini>Xml</mini> to <mini>Value</mini> and returns <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=":tag" variadic="false"><return type="string"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns the tag of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=":text" variadic="false"><return type="string"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns the (recursive) text content of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=":text" variadic="false"><return type="string"/><parameters><parameter name="Xml" type="xml::element"/><parameter name="Sep" type="string"/></parameters><description>Returns the (recursive) text content of <mini>Xml</mini>, adding <mini>Sep</mini> between the contents of adjacent nodes.
</description><examples/></method><method category="xml" name=":text" variadic="false"><return type="string"/><parameters><parameter name="Xml" type="xml::text"/></parameters><description>Returns the text content of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=":visit" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="xml::element"/></parameters><description/><examples/></method><method category="xml" name="<" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name="<" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th prev sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="<" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name="<" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ < Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name="<" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the prev sibling of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name="<" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the previous sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="<<" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the previous siblings of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="<<" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ << Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name="<<" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns a sequence of the previous siblings of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name="<<" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns a sequence of the previous siblings of <mini>Xml</mini> with tag <mini>Tag</mini>.
</description><examples/></method><method category="xml" name="<<" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the previous siblings of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name="<<" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence of the previous siblings of <mini>Xml</mini> for which <mini>Fn(Child)</mini> is non-nil.
</description><examples/></method><method category="xml" name=">" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th next sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=">" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=">" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the next sibling of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name=">" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=">" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ > Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name=">" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the next sibling of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name=">>" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Fn" type="function"/></parameters><description>Returns a sequence of the next siblings of <mini>Xml</mini> for which <mini>Fn(Child)</mini> is non-nil.
</description><examples/></method><method category="xml" name=">>" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml::element"/></parameters><description>Returns a sequence of the next siblings of <mini>Xml</mini>.
</description><examples/></method><method category="xml" name=">>" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the next siblings of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><method category="xml" name=">>" variadic="false"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns a sequence of the next siblings of <mini>Xml</mini> with tag <mini>Tag</mini>.
</description><examples/></method><method category="xml" name=">>" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ >> Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name=">>" variadic="true"><return type="sequence"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns a sequence of the next siblings of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc.
</description><examples/></method><type name="xml::element"><parents><parent type="xml"/><parent type="sequence"/></parents><description>An XML element node.
</description><examples/></type><type name="xml::filter"><parents><parent type="function"/></parents><description>An XML filter.
</description><examples/></type><type name="xml"><parents/><description>An XML node.
</description><examples/></type><type name="xml::text"><parents><parent type="xml"/><parent type="string"/></parents><description>An XML text node.
</description><examples/></type><method category="xml" name="[]" variadic="false"><return type="string|nil"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Attribute" type="string"/></parameters><description>Returns the value of the <mini>Attribute</mini> attribute of <mini>Parent</mini>.
</description><examples/></method><method category="xml" name="[]" variadic="false"><return type="xml|nil"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Index" type="integer"/></parameters><description>Returns the <mini>Index</mini>-th child of <mini>Parent</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="[]" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="xml::element"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="names"/></parameters><description/><examples/></method><method category="xml" name="[]" variadic="false"><return type="xml|nil"/><parameters><parameter name="Parent" type="xml::element"/><parameter name="Index" type="integer"/><parameter name="Tag" type="string"/></parameters><description>Returns the <mini>Index</mini>-th child of <mini>Parent</mini> with tag <mini>Tag</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="[]" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="xml::element"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="string"/><parameter name="Arg₄" type="names"/></parameters><description/><examples/></method><method category="xml" name="^" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/></parameters><description>Returns the parent of <mini>Xml</mini> with tag <mini>Tag</mini> if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name="^" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="N" type="integer"/></parameters><description>Returns the <mini>N</mini>-th parent of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="^" variadic="false"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/></parameters><description>Returns the parent of <mini>Xml</mini> or <mini>nil</mini>.
</description><examples/></method><method category="xml" name="^" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Tag" type="string"/><parameter name="Attribute" type="names"/></parameters><description>Returns the parent of <mini>Xml</mini> with tag <mini>Tag</mini> and <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><method category="xml" name="^" variadic="true"><return type="sequence"/><parameters><parameter name="Sequence" type="xml::sequence"/><parameter name="Args" type="any"/></parameters><description>Generates the sequence <mini>Nodeᵢ ^ Args</mini> where <mini>Nodeᵢ</mini> are the nodes generated by <mini>Sequence</mini>.
</description><examples/></method><method category="xml" name="^" variadic="true"><return type="xml|nil"/><parameters><parameter name="Xml" type="xml"/><parameter name="Attribute" type="names"/></parameters><description>Returns the parent of <mini>Xml</mini> with <mini>Attribute₁ = Value₁</mini>, etc., if one exists, otherwise <mini>nil</mini>.
</description><examples/></method><constructor category="xml" name="xml" variadic="true"><return type="xml"/><parameters><parameter name="Tag" type="symbol"/></parameters><description>Returns a new xml element with tag <mini>Tag</mini>, adding attributes and children as <mini>xml::element(...)</mini>.
</description><examples/></constructor><constructor category="xml" name="xml" variadic="false"><return type="xml"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> parsed into an XML node.
</description><examples/></constructor><constructor category="xml" name="xml" variadic="false"><return type="xml"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Returns the contents of <mini>Stream</mini> parsed into an XML node.
</description><examples/></constructor><constructor category="xml" name="xml::element" variadic="true"><return type="xml::element"/><parameters><parameter name="Tag" type="string"/><parameter name="Arg₁, ..., Argₙ" type="any"/></parameters><description>Returns a new XML node with tag <mini>Tag</mini> and optional children and attributes depending on the types of each <mini>Argᵢ</mini>:
* <mini>string</mini>: added as child text node. Consecutive strings are added a single node.
* <mini>xml</mini>: added as a child node.
* <mini>list</mini>: each value must be a <mini>string</mini> or <mini>xml</mini> and is added as above.
* <mini>map</mini>: keys and values must be strings, set as attributes.
* <mini>name is value</mini>: values must be strings, set as attributes.
</description><examples><code>import: xml("fmt/xml")
xml::element("test", "Text", type is "example")</code><result>error("XMLError", "Attribute values must be strings")</result></examples></constructor><function name="xml::escape"><return/><parameters><parameter name="String" type="string"/></parameters><description>Escapes characters in <mini>String</mini>.
</description><examples><code>import: xml("fmt/xml")
xml::escape("\'1 + 2 > 3 & 2 < 4\'")</code><result>"\'1 + 2 &gt; 3 &amp; 2 &lt; 4\'"</result></examples></function><constructor category="xml" name="xml::filter" variadic="true"><return type="xml::filter"/><parameters><parameter name="Tag" type="string"/><parameter name="Attr, Value" type="names"/></parameters><description>Returns an XML filter that checks if a node has tag <mini>Tag</mini> and attributes <mini>Attrᵢ = Valueᵢ</mini>.
</description><examples/></constructor><constructor category="xml" name="xml::filter" variadic="true"><return type="xml::filter"/><parameters><parameter name="Attr, Value" type="names"/></parameters><description>Returns an XML filter that checks if a node has attributes <mini>Attrᵢ = Valueᵢ</mini>.
</description><examples/></constructor><method category="xml" name="xml::parse" variadic="false"><return type="xml"/><parameters><parameter name="String" type="address"/></parameters><description>Returns <mini>String</mini> parsed into an XML node.
</description><examples/></method><method category="xml" name="xml::parse" variadic="false"><return type="xml"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Returns the contents of <mini>Stream</mini> parsed into an XML node.
</description><examples/></method><type name="xml::parser"><parents><parent type="stream"/></parents><description>A callback based streaming XML parser.
</description><examples/></type><constructor name="xml::parser"><return/><parameters><parameter name="Callback" type="any"/></parameters><description>Returns a new parser that calls <mini>Callback(Xml)</mini> each time a complete XML document is parsed.
</description><examples/></constructor></category><category name="xe"><method category="xe" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="xe::node"/></parameters><description/><examples/></method><method category="xe" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="xe::var"/></parameters><description/><examples/></method><method category="xe" name=":attributes" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::node"/></parameters><description/><examples/></method><method category="xe" name=":content" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::node"/></parameters><description/><examples/></method><method category="xe" name=":indices" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::var"/></parameters><description/><examples/></method><method category="xe" name=":name" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::var"/></parameters><description/><examples/></method><method category="xe" name=":tag" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::node"/></parameters><description/><examples/></method><type name="xe::node"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="xe::var"><parents/><description/><examples/></type><method category="xe" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="xe::node"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><constructor name="xe::node"><return/><parameters><parameter name="Tag" type="string"/></parameters><description/><examples/></constructor><function name="xe::parse"><return/><parameters><parameter name="String" type="string"/></parameters><description/><examples/></function><constructor name="xe::var"><return/><parameters><parameter name="Name" type="string"/></parameters><description/><examples/></constructor></category><category name="uuid"><description>.. note::
Depending on how *Minilang* is built, <mini>uuid</mini> might need to be imported using <mini>import: uuid("util/uuid")</mini>.
</description><method category="uuid" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="UUID" type="uuid"/></parameters><description>Appends a representation of <mini>UUID</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="uuid" name="<>" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="uuid"/><parameter name="Arg₂" type="uuid"/></parameters><description/><examples/></method><type name="uuid"><parents/><description>A UUID.
</description><examples/></type><constructor category="uuid" name="address" variadic="false"><return type="address"/><parameters><parameter name="UUID" type="uuid"/></parameters><description>Returns an address view of <mini>UUID</mini>.
</description><examples><code>import: uuid("util/uuid")
address(uuid())</code><result><16:8BAD5387528147B692028245FDCE53EF></result></examples></constructor><constructor category="uuid" name="uuid" variadic="false"><return type="uuid|error"/><parameters><parameter name="String" type="string"/></parameters><description>Parses <mini>String</mini> as a UUID, returning an error if <mini>String</mini> does not have the correct format.
</description><examples><code>import: uuid("util/uuid")
uuid("5fe1af82-02f9-429a-8787-4a7c16628a02")</code><result>5fe1af82-02f9-429a-8787-4a7c16628a02</result><code>uuid("test")</code><result>error("UUIDError", "Invalid UUID string")</result></examples></constructor><constructor category="uuid" name="uuid" variadic="false"><return type="uuid|error"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns a new UUID with the bytes of <mini>Address</mini>.
</description><examples/></constructor><constructor category="uuid" name="uuid" variadic="false"><return type="uuid"/><parameters/><description>Returns a new random UUID.
</description><examples><code>import: uuid("util/uuid")
uuid()</code><result>af5d358a-fb5d-40b6-95c3-bc68e1a82e0f</result></examples></constructor></category><category name="tuple"><method category="tuple" name="!=" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>A:size != B:size</mini> or <mini>Aᵢ != Bᵢ</mini> for some <mini>i</mini>.
</description><examples><code>!=((1, 2, 3), (1, 2, 3))</code><result>nil</result><code>!=((1, 2, 3), (1, 2))</code><result>(1, 2)</result><code>!=((1, 2), (1, 2, 3))</code><result>(1, 2, 3)</result><code>!=((1, 2, 3), (1, 2, 4))</code><result>(1, 2, 4)</result><code>!=((1, 3, 2), (1, 2, 3))</code><result>(1, 2, 3)</result></examples></method><method category="tuple" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="tuple"/><parameter name="Arg₃" type="string"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="tuple" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="tuple"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="tuple" name=":const" variadic="false"><return type="tuple"/><parameters><parameter name="Copy" type="visitor"/><parameter name="Tuple" type="tuple"/></parameters><description>Returns a new tuple containing copies of the elements of <mini>Tuple</mini> created using <mini>Copy</mini>.
</description><examples/></method><method category="tuple" name=":copy" variadic="false"><return type="tuple"/><parameters><parameter name="Copy" type="visitor"/><parameter name="Tuple" type="tuple"/></parameters><description>Returns a new tuple containing copies of the elements of <mini>Tuple</mini> created using <mini>Copy</mini>.
</description><examples/></method><method category="tuple" name=":size" variadic="false"><return type="integer"/><parameters><parameter name="Tuple" type="tuple"/></parameters><description>Returns the number of elements in <mini>Tuple</mini>.
</description><examples/></method><method category="tuple" name=":visit" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="tuple"/></parameters><description/><examples/></method><method category="tuple" name="<" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>Aᵢ = Bᵢ</mini> for each <mini>i = 1 .. j-1</mini> and <mini>Aⱼ < Bⱼ</mini>.
</description><examples><code><((1, 2, 3), (1, 2, 3))</code><result>nil</result><code><((1, 2, 3), (1, 2))</code><result>nil</result><code><((1, 2), (1, 2, 3))</code><result>(1, 2, 3)</result><code><((1, 2, 3), (1, 2, 4))</code><result>(1, 2, 4)</result><code><((1, 3, 2), (1, 2, 3))</code><result>nil</result></examples></method><method category="tuple" name="<=" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>Aᵢ = Bᵢ</mini> for each <mini>i = 1 .. j-1</mini> and <mini>Aⱼ <= Bⱼ</mini>.
</description><examples><code><=((1, 2, 3), (1, 2, 3))</code><result>(1, 2, 3)</result><code><=((1, 2, 3), (1, 2))</code><result>nil</result><code><=((1, 2), (1, 2, 3))</code><result>(1, 2, 3)</result><code><=((1, 2, 3), (1, 2, 4))</code><result>(1, 2, 4)</result><code><=((1, 3, 2), (1, 2, 3))</code><result>nil</result></examples></method><method category="tuple" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Tuple₁" type="tuple"/><parameter name="Tuple₂" type="tuple"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Tuple₁</mini> is less than, equal to or greater than <mini>Tuple₂</mini> using lexicographical ordering.
</description><examples/></method><method category="tuple" name="=" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>A:size = B:size</mini> and <mini>Aᵢ = Bᵢ</mini> for each <mini>i</mini>.
</description><examples><code>=((1, 2, 3), (1, 2, 3))</code><result>(1, 2, 3)</result><code>=((1, 2, 3), (1, 2))</code><result>nil</result><code>=((1, 2), (1, 2, 3))</code><result>nil</result><code>=((1, 2, 3), (1, 2, 4))</code><result>nil</result><code>=((1, 3, 2), (1, 2, 3))</code><result>nil</result></examples></method><method category="tuple" name=">" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>Aᵢ = Bᵢ</mini> for each <mini>i = 1 .. j-1</mini> and <mini>Aⱼ > Bⱼ</mini>.
</description><examples><code>>((1, 2, 3), (1, 2, 3))</code><result>nil</result><code>>((1, 2, 3), (1, 2))</code><result>(1, 2)</result><code>>((1, 2), (1, 2, 3))</code><result>nil</result><code>>((1, 2, 3), (1, 2, 4))</code><result>nil</result><code>>((1, 3, 2), (1, 2, 3))</code><result>(1, 2, 3)</result></examples></method><method category="tuple" name=">=" variadic="false"><return type="B|nil"/><parameters><parameter name="A" type="tuple"/><parameter name="B" type="tuple"/></parameters><description>Returns <mini>B</mini> if <mini>Aᵢ = Bᵢ</mini> for each <mini>i = 1 .. j-1</mini> and <mini>Aⱼ >= Bⱼ</mini>.
</description><examples><code>>=((1, 2, 3), (1, 2, 3))</code><result>(1, 2, 3)</result><code>>=((1, 2, 3), (1, 2))</code><result>(1, 2)</result><code>>=((1, 2), (1, 2, 3))</code><result>nil</result><code>>=((1, 2, 3), (1, 2, 4))</code><result>nil</result><code>>=((1, 3, 2), (1, 2, 3))</code><result>(1, 2, 3)</result></examples></method><type name="tuple"><parents><parent type="function"/><parent type="sequence"/></parents><description>An immutable tuple of values.
<mini>(Tuple: tuple)(Arg₁, ..., Argₙ)</mini>
Returns <mini>(Tuple[1](Arg₁, ..., Argₙ), ..., Tuple[k](Arg₁, ..., Argₙ))</mini>
</description><examples/></type><method category="tuple" name="[]" variadic="false"><return type="any|error"/><parameters><parameter name="Tuple" type="tuple"/><parameter name="Index" type="integer"/></parameters><description>Returns the <mini>Index</mini>-th element in <mini>Tuple</mini> or an error if <mini>Index</mini> is out of interval.
Indexing starts at <mini>1</mini>. Negative indices count from the end, with <mini>-1</mini> returning the last element.
</description><examples/></method><constructor name="tuple"><return/><parameters><parameter name="Value₁" type="any"/><parameter name="" type="..."/><parameter name="Valueₙ" type="any"/></parameters><description>Returns a tuple of values <mini>Value₁, ..., Valueₙ</mini>.
</description><examples/></constructor></category><category name="time"><description>Provides time and date operations.
</description><method category="time" name="+" variadic="false"><return type="time"/><parameters><parameter name="Start" type="time"/><parameter name="Duration" type="number"/></parameters><description>Returns the time <mini>Duration</mini> seconds after <mini>Start</mini>.
</description><examples><code>time("2022-04-01 12:00:00") + 3600</code><result>2022-04-01T13:00:00</result></examples></method><method category="time" name="-" variadic="false"><return type="real"/><parameters><parameter name="End" type="time"/><parameter name="Start" type="time"/></parameters><description>Returns the time elasped betwen <mini>Start</mini> and <mini>End</mini> in seconds.
</description><examples><code>time("2022-04-01 12:00:00") - time("2022-04-01 11:00:00")</code><result>3600</result></examples></method><method category="time" name="-" variadic="false"><return type="time"/><parameters><parameter name="Start" type="time"/><parameter name="Duration" type="number"/></parameters><description>Returns the time <mini>Duration</mini> seconds before <mini>Start</mini>.
</description><examples><code>time("2022-04-01 12:00:00") - 3600</code><result>2022-04-01T11:00:00</result></examples></method><method category="time" name="::" variadic="false"><return type="time::zone|error"/><parameters><parameter name="Name" type="time::zone::type"/><parameter name="Arg₂" type="string"/></parameters><description>Returns the time zone identified by <mini>Name</mini> or an error if no time zone is found.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/><parameter name="Format" type="string"/></parameters><description>Formats <mini>Time</mini> as a local time according to the specified format.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/><parameter name="Format" type="string"/><parameter name="TimeZone" type="nil"/></parameters><description>Formats <mini>Time</mini> as a UTC time according to the specified format.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Appends the name of <mini>TimeZone</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/></parameters><description>Formats <mini>Time</mini> as a local time.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Formats <mini>Time</mini> as a time in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/><parameter name="Format" type="string"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Formats <mini>Time</mini> as a time in <mini>TimeZone</mini> according to the specified format.
</description><examples/></method><method category="time" name=":append" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Formats <mini>Time</mini> as a UTC time according to ISO 8601.
</description><examples/></method><method category="time" name=":day" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the date from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":day" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the date from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":day" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the date from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":hour" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the hour from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":hour" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the hour from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":hour" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the hour from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":minute" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the minute from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":minute" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the minute from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":minute" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the minute from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":month" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the month from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":month" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the month from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":month" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the month from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":nsec" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the nanoseconds component of <mini>Time</mini>.
</description><examples/></method><method category="time" name=":precision" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="time"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="time" name=":second" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the second from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":second" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the second from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":second" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the second from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":wday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the day of the week from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":wday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the day of the week from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":wday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the day of the week from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":with" variadic="true"><return type="time"/><parameters><parameter name="Time" type="time"/><parameter name="Component, Value" type="names"/></parameters><description>Returns <mini>Time</mini> with the the specified components updated.
</description><examples/></method><method category="time" name=":with" variadic="true"><return type="time"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/><parameter name="Component, Value" type="names"/></parameters><description>Returns <mini>Time</mini> with the the specified components updated in the specified time zone.
</description><examples/></method><method category="time" name=":with" variadic="true"><return type="time"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/><parameter name="Component, Value" type="names"/></parameters><description>Returns <mini>Time</mini> with the the specified components updated in UTC.
</description><examples/></method><method category="time" name=":yday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the number of days from the start of the year from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":yday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the number of days from the start of the year from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":yday" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the number of days from the start of the year from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name=":year" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the year from <mini>Time</mini> in <mini>TimeZone</mini>.
</description><examples/></method><method category="time" name=":year" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the year from <mini>Time</mini> in UTC.
</description><examples/></method><method category="time" name=":year" variadic="false"><return type="integer"/><parameters><parameter name="Time" type="time"/></parameters><description>Returns the year from <mini>Time</mini> in local time.
</description><examples/></method><method category="time" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="time"/><parameter name="B" type="time"/></parameters><description>Compares the times <mini>A</mini> and <mini>B</mini> and returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> respectively.
</description><examples/></method><type name="time::day"><parents><parent type="enum::cyclic"/></parents><description>* <mini>::Monday</mini>
* <mini>::Tuesday</mini>
* <mini>::Wednesday</mini>
* <mini>::Thursday</mini>
* <mini>::Friday</mini>
* <mini>::Saturday</mini>
* <mini>::Sunday</mini>
</description><examples/></type><type name="time::month"><parents><parent type="enum::cyclic"/></parents><description>* <mini>::January</mini>
* <mini>::February</mini>
* <mini>::March</mini>
* <mini>::April</mini>
* <mini>::May</mini>
* <mini>::June</mini>
* <mini>::July</mini>
* <mini>::August</mini>
* <mini>::September</mini>
* <mini>::October</mini>
* <mini>::November</mini>
* <mini>::December</mini>
</description><examples/></type><type name="time"><parents/><description>An instant in time with nanosecond resolution.
</description><examples/></type><type name="time::zone"><parents/><description>A time zone.
</description><examples/></type><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the time specified by the provided components in UTC.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/></parameters><description>Returns the time specified by the provided components in the local time.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters/><description>Returns the current time.
</description><examples><code>time()</code><result>2025-02-24T07:33:07.754548</result></examples></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="String" type="string"/></parameters><description>Parses the <mini>String</mini> as a time according to ISO 8601.
</description><examples><code>time("2023-02-09T21:19:33.196413266")</code><result>2023-02-09T20:19:33.196413</result></examples></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="String" type="string"/><parameter name="Format" type="string"/><parameter name="TimeZone" type="nil"/></parameters><description>Parses the <mini>String</mini> as a time according to specified format. The time is assumed to be in UTC.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="String" type="string"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Parses the <mini>String</mini> as a time in the specified time zone.
</description><examples><code>time("2023-02-09T21:19:33.196413266", time::zone::"America/Chicago")</code><result>2023-02-10T03:19:33.196413</result></examples></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="String" type="string"/><parameter name="Format" type="string"/></parameters><description>Parses the <mini>String</mini> as a time according to specified format. The time is assumed to be in local time.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/><parameter name="Hour" type="integer"/><parameter name="Minute" type="integer"/><parameter name="Second" type="integer"/></parameters><description>Returns the time specified by the provided components in the local time.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the time specified by the provided components in the specified time zone.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="String" type="string"/><parameter name="Format" type="string"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Parses the <mini>String</mini> as a time according to specified format in the specified time zone.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/><parameter name="Hour" type="integer"/><parameter name="Minute" type="integer"/><parameter name="Second" type="integer"/><parameter name="TimeZone" type="time::zone"/></parameters><description>Returns the time specified by the provided components in the specified time zone.
</description><examples/></constructor><constructor category="time" name="time" variadic="false"><return type="time"/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/><parameter name="Day" type="integer"/><parameter name="Hour" type="integer"/><parameter name="Minute" type="integer"/><parameter name="Second" type="integer"/><parameter name="TimeZone" type="nil"/></parameters><description>Returns the time specified by the provided components in UTC.
</description><examples/></constructor><function name="time::mdays"><return/><parameters><parameter name="Year" type="integer"/><parameter name="Month" type="integer"/></parameters><description/><examples/></function></category><category name="thread"><method category="thread" name=":broadcast" variadic="false"><return type="thread::condition"/><parameters><parameter name="Condition" type="thread::condition"/></parameters><description>Signals all threads waiting on <mini>Condition</mini>.
</description><examples/></method><method category="thread" name=":join" variadic="false"><return type="any"/><parameters><parameter name="Thread" type="thread"/></parameters><description>Waits until the thread <mini>Thread</mini> completes and returns its result.
</description><examples/></method><method category="thread" name=":lock" variadic="false"><return type="thread::mutex"/><parameters><parameter name="Mutex" type="thread::mutex"/></parameters><description>Locks <mini>Mutex</mini>.
</description><examples/></method><method category="thread" name=":protect" variadic="false"><return type="thread::protected"/><parameters><parameter name="Mutex" type="thread::mutex"/><parameter name="Value" type="any"/></parameters><description>Creates a thread-safe (protected) wrapper for <mini>Value</mini>.
</description><examples/></method><method category="thread" name=":recv" variadic="true"><return type="tuple[integer, any]"/><parameters><parameter name="Channel₁" type="thread::channel"/><parameter name="..., Channelₙ" type="thread::channel"/></parameters><description>Gets the next available message on any of <mini>Channel₁, ..., Channelₙ</mini>, blocking if <mini>Channel</mini> is empty. Returns <mini>(Index, Message)</mini> where <mini>Index = 1, ..., n</mini>.
</description><examples/></method><method category="thread" name=":send" variadic="false"><return type="thread::channel"/><parameters><parameter name="Channel" type="thread::channel"/><parameter name="Message" type="any"/></parameters><description>Adds <mini>Message</mini> to <mini>Channel</mini>. <mini>Message</mini> must be thread-safe.
Blocks if <mini>Channel</mini> is currently full.
</description><examples/></method><method category="thread" name=":signal" variadic="false"><return type="thread::condition"/><parameters><parameter name="Condition" type="thread::condition"/></parameters><description>Signals a single thread waiting on <mini>Condition</mini>.
</description><examples/></method><method category="thread" name=":thread" variadic="true"><return type="thread"/><parameters><parameter name="Args..." type="any"/><parameter name="Fn" type="function"/><parameter name="Arg₃" type="any"/></parameters><description>Creates a new thread and calls <mini>Fn(Args...)</mini> in the new thread.
All arguments must be thread-safe.
</description><examples/></method><method category="thread" name=":unlock" variadic="false"><return type="thread::mutex"/><parameters><parameter name="Mutex" type="thread::mutex"/></parameters><description>Unlocks <mini>Mutex</mini>.
</description><examples/></method><method category="thread" name=":use" variadic="true"><return type="any"/><parameters><parameter name="Protected₁" type="thread::protected"/><parameter name="..., Protectedₙ" type="thread::protected"/><parameter name="Function" type="function"/></parameters><description>Locks <mini>Protected₁:mutex</mini>, then calls <mini>Function(Value₁, ..., Valueₙ)</mini> where <mini>Valueᵢ</mini> is the value protected by <mini>Protectedᵢ</mini>. All <mini>Protectedᵢ</mini> must be protected by the same <mini>thread::mutex</mini>.
</description><examples/></method><method category="thread" name=":wait" variadic="false"><return type="thread::condition"/><parameters><parameter name="Condition" type="thread::condition"/><parameter name="Mutex" type="thread::mutex"/></parameters><description>Waits for a signal on <mini>Condition</mini>, using <mini>Mutex</mini> for synchronization.
</description><examples/></method><type name="thread::channel"><parents/><description>A channel for thread communication.
</description><examples/></type><type name="thread::condition"><parents/><description>A condition.
</description><examples/></type><type name="thread::mutex"><parents/><description>A mutex.
</description><examples/></type><type name="thread::port"><parents><parent type="function"/></parents><description/><examples/></type><type name="thread::protected"><parents/><description>A thread-safe (protected) wrapper for another value.
</description><examples/></type><type name="thread"><parents/><description>A thread.
</description><examples/></type><function name="mlthreadport"><return/><parameters><parameter name="Arg₁" type="any"/></parameters><description/><examples/></function><method category="thread" name="thread" variadic="false"><return type=""/><parameters/><description/><examples/></method><constructor name="thread::channel"><return/><parameters><parameter name="Capacity" type="integer"/></parameters><description>Creates a new channel with capacity <mini>Capacity</mini>.
</description><examples/></constructor><constructor name="thread::condition"><return/><parameters/><description>Creates a new condition.
</description><examples/></constructor><constructor name="thread::mutex"><return/><parameters/><description>Creates a new mutex.
</description><examples/></constructor><function name="thread::sleep"><return/><parameters><parameter name="Duration" type="number"/></parameters><description>Causes the current thread to sleep for <mini>Duration</mini> microseconds.
</description><examples/></function></category><category name="tasks"><method category="tasks" name="*" variadic="false"><return type="task::set"/><parameters><parameter name="Task₁" type="task"/><parameter name="Task₂" type="task"/></parameters><description>Returns a <mini>task::set</mini> that completes when all of its sub tasks complete, or any raises an error.
</description><examples/></method><method category="tasks" name="+" variadic="false"><return type="task::set"/><parameters><parameter name="Task₁" type="task"/><parameter name="Task₂" type="task"/></parameters><description>Returns a <mini>task::set</mini> that completes when any of its sub tasks complete, or any raises an error.
</description><examples/></method><method category="tasks" name=":cancel" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="task::queue"/></parameters><description/><examples/></method><method category="tasks" name=":done" variadic="false"><return type="any|error"/><parameters><parameter name="Task" type="task"/><parameter name="Result" type="any"/></parameters><description>Completes <mini>Task</mini> with <mini>Result</mini>, resuming any waiting code. Raises an error if <mini>Task</mini> is already complete.
</description><examples/></method><method category="tasks" name=":else" variadic="false"><return type="task"/><parameters><parameter name="Fn" type="function"/><parameter name="Else" type="function"/></parameters><description/><examples/></method><method category="tasks" name=":error" variadic="false"><return type="any|error"/><parameters><parameter name="Task" type="task"/><parameter name="Type" type="string"/><parameter name="Message" type="string"/></parameters><description>Completes <mini>Task</mini> with an <mini>error(Type, Message)</mini>, resuming any waiting code. Raises an error if <mini>Task</mini> is already complete.
</description><examples/></method><method category="tasks" name=":on" variadic="false"><return type="task"/><parameters><parameter name="Fn" type="function"/><parameter name="On" type="function"/></parameters><description/><examples/></method><method category="tasks" name=":then" variadic="false"><return type="task"/><parameters><parameter name="Fn" type="function"/><parameter name="Then" type="function"/></parameters><description>Equivalent to <mini>task(Fn, call -> Then)</mini>.
</description><examples/></method><method category="tasks" name=":then" variadic="false"><return type="task"/><parameters><parameter name="Fn" type="function"/><parameter name="Then" type="function"/><parameter name="Else" type="function"/></parameters><description/><examples/></method><method category="tasks" name=":wait" variadic="false"><return type="any|error"/><parameters><parameter name="Tasks" type="task::list"/></parameters><description>Waits until all the tasks in <mini>Tasks</mini> are completed or any task returns an error.
</description><examples/></method><method category="tasks" name=":wait" variadic="false"><return type="any|error"/><parameters><parameter name="Task" type="task"/></parameters><description>Waits until <mini>Task</mini> is completed and returns its result.
</description><examples/></method><type name="task::queue"><parents><parent type="function"/></parents><description>A queue of tasks that can run a limited number of tasks at once.
<mini>fun (Queue: task::queue)(Arg₁, ..., Argₙ, Fn): task</mini>
Returns a new task that calls <mini>Fn(Arg₁, ..., Argₙ)</mini>. The task will be delayed if <mini>Queue</mini> has reached its limit.
</description><examples/></type><type name="task::set"><parents><parent type="task"/></parents><description>A task combining a set of sub tasks.
</description><examples/></type><type name="task"><parents><parent type="function"/></parents><description>A task representing a value that will eventually be completed.
</description><examples/></type><function name="buffered"><return/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Size" type="integer"/><parameter name="Fn" type="function"/></parameters><description>Returns the sequence <mini>(Kᵢ, Fn(Kᵢ, Vᵢ))</mini> where <mini>Kᵢ, Vᵢ</mini> are the keys and values produced by <mini>Sequence</mini>. The calls to <mini>Fn</mini> are done in parallel, with at most <mini>Size</mini> calls at a time. The original sequence order is preserved (using an internal buffer).
</description><examples><code>list(buffered(1 .. 10, 5, tuple))</code><result>[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10)]</result></examples></function><function name="diffused"><return/><parameters><parameter name="Sequence" type="sequence"/><parameter name="Size" type="integer"/><parameter name="Fn" type="function"/></parameters><description>Returns the sequence <mini>(Kᵢ, Fn(Kᵢ, Vᵢ))</mini> where <mini>Kᵢ, Vᵢ</mini> are the keys and values produced by <mini>Sequence</mini>. The calls to <mini>Fn</mini> are done in parallel, with at most <mini>Size</mini> calls at a time. The original sequence order is not preserved.
</description><examples><code>list(diffused(1 .. 10, 5, tuple))</code><result>[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10)]</result></examples></function><function name="parallel"><return/><parameters><parameter name="Sequence" type="any"/><parameter name="Max?" type="integer"/><parameter name="Min?" type="integer"/><parameter name="Fn" type="function"/></parameters><description>Iterates through <mini>Sequence</mini> and calls <mini>Fn(Key, Value)</mini> for each <mini>Key, Value</mini> pair produced **without** waiting for the call to return.
The call to <mini>parallel</mini> returns when all calls to <mini>Fn</mini> return, or an error occurs.
If <mini>Max</mini> is given, at most <mini>Max</mini> calls to <mini>Fn</mini> will run at a time by pausing iteration through <mini>Sequence</mini>.
If <mini>Min</mini> is also given then iteration will be resumed only when the number of calls to <mini>Fn</mini> drops to <mini>Min</mini>.
</description><examples/></function><constructor category="tasks" name="task" variadic="false"><return type="task"/><parameters/><description>Returns a task. The task should eventually be completed with <mini>Task:done()</mini> or <mini>Task:error()</mini>.
</description><examples/></constructor><constructor category="tasks" name="task" variadic="false"><return type="task"/><parameters><parameter name="Arg₁..." type="any"/><parameter name="Argₙ" type="any"/><parameter name="Fn" type="function"/></parameters><description>Returns a task which calls <mini>Fn(Arg₁, ..., Argₙ)</mini>.
</description><examples/></constructor><constructor category="tasks" name="task::queue" variadic="false"><return type="task::queue"/><parameters><parameter name="MaxRunning" type="integer"/></parameters><description>Returns a new task queue which runs at most <mini>MaxRunning</mini> tasks at a time.
</description><examples/></constructor><constructor category="tasks" name="task::queue" variadic="false"><return type="task::queue"/><parameters><parameter name="MaxRunning" type="integer"/><parameter name="Callback" type="function"/></parameters><description>Returns a new task queue which runs at most <mini>MaxRunning</mini> tasks at a time.
</description><examples/></constructor></category><category name="table"><method category="table" name="::" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="table" name="::" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table::row"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="table" name=":AppendMethod" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="table"/></parameters><description/><examples/></method><method category="table" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="table::row"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="table" name=":capacity" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/></parameters><description/><examples/></method><method category="table" name=":columns" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/></parameters><description/><examples/></method><method category="table" name=":delete" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="table" name=":insert" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="names"/><parameter name="Arg₃" type="array"/></parameters><description/><examples/></method><method category="table" name=":insert" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="names"/></parameters><description/><examples/></method><method category="table" name=":insert" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="array"/></parameters><description/><examples/></method><method category="table" name=":length" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/></parameters><description/><examples/></method><method category="table" name=":offset" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/></parameters><description/><examples/></method><method category="table" name=":push" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="names"/></parameters><description/><examples/></method><method category="table" name=":put" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="names"/></parameters><description/><examples/></method><type name="table::column"><parents/><description/><examples/></type><type name="table::row"><parents/><description/><examples/></type><type name="table"><parents><parent type="sequence"/></parents><description>A table is a set of named arrays. The arrays must have the same length.
</description><examples/></type><method category="table" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="table" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="table" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="table::row"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="table" name="table" variadic="false"><return type=""/><parameters/><description/><examples/></method><method category="table" name="table" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="map"/></parameters><description/><examples/></method><method category="table" name="table" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="names"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><method category="table" name="table" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="names"/><parameter name="Arg₂" type="type"/></parameters><description/><examples/></method></category><category name="struct"><method category="struct" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="instance"/></parameters><description/><examples/></method><method category="struct" name=":index" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="struct::getter"/></parameters><description/><examples/></method><type name="instance::field"><parents/><description/><examples/></type><type name="instance"><parents/><description/><examples/></type><type name="ref"><parents/><description/><examples/></type><type name="struct::getter::fast"><parents><parent type="function"/></parents><description/><examples/></type><type name="struct::getter"><parents><parent type="function"/></parents><description/><examples/></type><type name="struct"><parents><parent type="type"/></parents><description/><examples/></type><function name="mlstruct"><return/><parameters/><description/><examples/></function></category><category name="string"><description>Strings in Minilang can contain any sequence of bytes, including <mini>0</mini> bytes.
Index and find methods however work on
Every <mini>string</mini> is also an <mini>address</mini> so address methods can also be used to work at the byte level if necessary.
Indexing a string starts at <mini>1</mini>, with the last character at <mini>String:length</mini>. Negative indices are counted form the end, <mini>-1</mini> is the last character and <mini>-String:length</mini> is the first character.
When creating a substring, the first index is inclusive and second index is exclusive. The index <mini>0</mini> refers to just beyond the last character and can be used to take a substring to the end of a string.
</description><method category="string" name="!=" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ != Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" != "World"</code><result>"World"</result><code>"World" != "Hello"</code><result>"Hello"</result><code>"Hello" != "Hello"</code><result>nil</result><code>"abcd" != "abc"</code><result>"abc"</result><code>"abc" != "abcd"</code><result>"abcd"</result></examples></method><method category="string" name="!=" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ != Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" != r"[A-Za-z0-9_]+"</code><result>/[A-Za-z0-9_]+/</result><code>r"[A-Za-z0-9_]+" != r"[0-9]+"</code><result>/[0-9]+/</result><code>r"[0-9]+" != r"[0-9]+"</code><result>nil</result></examples></method><method category="string" name="!?" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns <mini>String</mini> if it does not match <mini>Pattern</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"2022-03-08" !? r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>nil</result><code>"Not a date" !? r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>"Not a date"</result></examples></method><method category="string" name="%" variadic="false"><return type="tuple[string]|nil"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Matches <mini>String</mini> with <mini>Pattern</mini> returning a tuple of the matched components, or <mini>nil</mini> if the pattern does not match.
</description><examples><code>"2022-03-08" % r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>(2022-03-08, 2022, 03, 08)</result><code>"Not a date" % r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>nil</result></examples></method><method category="string" name="*" variadic="false"><return type="string"/><parameters><parameter name="N" type="integer"/><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> concatentated <mini>N</mini> times.
</description><examples><code>5 * "abc"</code><result>"abcabcabcabcabc"</result></examples></method><method category="string" name="*/" variadic="false"><return type="tuple[string, string]"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="string"/></parameters><description>Splits <mini>String</mini> at the last occurence of <mini>Pattern</mini> and returns the two substrings in a tuple.
</description><examples><code>"2022/03/08" */ "/"</code><result>(2022/03, 08)</result></examples></method><method category="string" name="*/" variadic="false"><return type="tuple[string, string]"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Splits <mini>String</mini> at the last occurence of <mini>Pattern</mini> and returns the two substrings in a tuple.
</description><examples><code>"2022/03/08" */ r"[/-]"</code><result>(2022/03, 08)</result><code>"2022-03-08" */ r"[/-]"</code><result>(2022-03, 08)</result></examples></method><method category="string" name="+" variadic="false"><return type="string"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Returns <mini>A</mini> and <mini>B</mini> concatentated.
</description><examples><code>"Hello" + " " + "world"</code><result>"Hello world"</result></examples></method><method category="string" name=".." variadic="false"><return type="string::interval"/><parameters><parameter name="Start" type="string"/><parameter name="Limit" type="string"/></parameters><description>Returns a interval from the first character of <mini>Start</mini> to the first character of <mini>Limit</mini> (inclusive).
</description><examples/></method><method category="string" name="/" variadic="false"><return type="list"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="string"/></parameters><description>Returns a list of substrings from <mini>String</mini> by splitting around occurences of <mini>Pattern</mini>. Adjacent occurences of <mini>Pattern</mini> do not create empty strings.
</description><examples><code>"The cat snored as he slept" / " "</code><result>["The", "cat", "snored", "as", "he", "slept"]</result><code>"2022/03/08" / "/"</code><result>["2022", "03", "08"]</result></examples></method><method category="string" name="/" variadic="false"><return type="list"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns a list of substrings from <mini>String</mini> by splitting around occurences of <mini>Pattern</mini>.
If <mini>Pattern</mini> contains subgroups then only the subgroup matches are removed from the output substrings.
</description><examples><code>"2022/03/08" / r"[/-]"</code><result>["2022", "03", "08"]</result><code>"2022-03-08" / r"[/-]"</code><result>["2022", "03", "08"]</result></examples></method><method category="string" name="/" variadic="false"><return type="list"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Index" type="integer"/></parameters><description>Returns a list of substrings from <mini>String</mini> by splitting around occurences of <mini>Pattern</mini>.
Only the <mini>Index</mini> subgroup matches are removed from the output substrings.
</description><examples><code>"<A>-<B>-<C>" / (r">(-)<", 1)</code><result>["<A>", "<B>", "<C>"]</result></examples></method><method category="string" name="/*" variadic="false"><return type="tuple[string, string]"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="string"/></parameters><description>Splits <mini>String</mini> at the first occurence of <mini>Pattern</mini> and returns the two substrings in a tuple.
</description><examples><code>"2022/03/08" /* "/"</code><result>(2022, 03/08)</result></examples></method><method category="string" name="/*" variadic="false"><return type="tuple[string, string]"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Splits <mini>String</mini> at the first occurence of <mini>Pattern</mini> and returns the two substrings in a tuple.
</description><examples><code>"2022/03/08" /* r"[/-]"</code><result>(2022, 03/08)</result><code>"2022-03-08" /* r"[/-]"</code><result>(2022, 03-08)</result></examples></method><method category="string" name="::" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="string" name="::" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::properties"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="string" name=":after" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Delimiter" type="string"/></parameters><description>Returns the portion of <mini>String</mini> after the 1st occurence of <mini>Delimiter</mini>, or <mini>nil</mini> if no occurence if found.
</description><examples><code>"2022/03/08":after("/")</code><result>"03/08"</result></examples></method><method category="string" name=":after" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Delimiter" type="string"/><parameter name="N" type="integer"/></parameters><description>Returns the portion of <mini>String</mini> after the <mini>N</mini>-th occurence of <mini>Delimiter</mini>, or <mini>nil</mini> if no <mini>N</mini>-th occurence if found.
If <mini>N < 0</mini> then occurences are counted from the end of <mini>String</mini>.
</description><examples><code>"2022/03/08":after("/", 2)</code><result>"08"</result></examples></method><method category="string" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="string"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="string" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="string::property::value"/></parameters><description/><examples/></method><method category="string" name=":append" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="function"/></parameters><description/><examples/></method><method category="string" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="string"/></parameters><description/><examples/></method><method category="string" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="regex"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="string" name=":before" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Delimiter" type="string"/></parameters><description>Returns the portion of <mini>String</mini> before the 1st occurence of <mini>Delimiter</mini>, or <mini>nil</mini> if no occurence if found.
</description><examples><code>"2022/03/08":before("/")</code><result>"2022"</result></examples></method><method category="string" name=":before" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Delimiter" type="string"/><parameter name="N" type="integer"/></parameters><description>Returns the portion of <mini>String</mini> before the <mini>N</mini>-th occurence of <mini>Delimiter</mini>, or <mini>nil</mini> if no <mini>N</mini>-th occurence if found.
If <mini>N < 0</mini> then occurences are counted from the end of <mini>String</mini>.
</description><examples><code>"2022/03/08":before("/", 2)</code><result>"2022/03"</result></examples></method><method category="string" name=":char" variadic="false"><return type="string"/><parameters><parameter name="Codepoint" type="integer"/></parameters><description>Returns a UTF-8 string containing the character with unicode codepoint <mini>Codepoint</mini>.
</description><examples/></method><method category="string" name=":cname" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string"/></parameters><description/><examples/></method><method category="string" name=":code" variadic="false"><return type="integer"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the unicode codepoint of the first UTF-8 character of <mini>String</mini>.
</description><examples><code>"A":code</code><result>65</result><code>"😀️":code</code><result>128512</result></examples></method><method category="string" name=":const" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="buffer"/></parameters><description/><examples/></method><method category="string" name=":contains" variadic="false"><return type="string|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/></parameters><description>Returns the <mini>Haystack</mini> if it contains <mini>Pattern</mini> or <mini>nil</mini> otherwise.
</description><examples><code>"The cat snored as he slept":contains("cat")</code><result>"The cat snored as he slept"</result><code>"The cat snored as he slept":contains("dog")</code><result>nil</result></examples></method><method category="string" name=":contains" variadic="false"><return type="string|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns the <mini>Haystack</mini> if it contains <mini>Pattern</mini> or <mini>nil</mini> otherwise.
</description><examples><code>"The cat snored as he slept":contains(r"[a-z]{3}")</code><result>"The cat snored as he slept"</result><code>"The cat snored as he slept":contains(r"[0-9]+")</code><result>nil</result></examples></method><method category="string" name=":copy" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="buffer"/></parameters><description/><examples/></method><method category="string" name=":count" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::charset"/></parameters><description/><examples/></method><method category="string" name=":count" variadic="false"><return type="integer"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the number of UTF-8 characters in <mini>String</mini>. Use <mini>:size</mini> to get the number of bytes.
</description><examples><code>"Hello world":count</code><result>11</result><code>"Hello world":size</code><result>11</result><code>"λ:😀 → 😺":count</code><result>7</result><code>"λ:😀 → 😺":size</code><result>16</result></examples></method><method category="string" name=":ctype" variadic="false"><return type="string::ctype"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the unicode type of the first character of <mini>String</mini>.
</description><examples><code>map("To €2 á\n" => (2, 2 -> :ctype))</code><result>{"T" is Lu, "o" is Ll, " " is Zs, "€" is Sc, "2" is Nd, "á" is Ll, "\n" is Cc}</result></examples></method><method category="string" name=":ends" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Suffix" type="string"/></parameters><description>Returns <mini>String</mini> if it ends with <mini>Suffix</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello world":ends("world")</code><result>"Hello world"</result><code>"Hello world":ends("cake")</code><result>nil</result></examples></method><method category="string" name=":escape" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> with white space, quotes and backslashes replaced by escape sequences.
</description><examples><code>"\t\"Text\"\r\n":escape</code><result>"\\t\\\"Text\\\"\\r\\n"</result></examples></method><method category="string" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/></parameters><description>Returns the index of the first occurence of <mini>Needle</mini> in <mini>Haystack</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find("cat")</code><result>5</result><code>"The cat snored as he slept":find("dog")</code><result>nil</result></examples></method><method category="string" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/><parameter name="Start" type="integer"/></parameters><description>Returns the index of the first occurence of <mini>Needle</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find("s", 1)</code><result>9</result><code>"The cat snored as he slept":find("s", 10)</code><result>17</result><code>"The cat snored as he slept":find("s", -6)</code><result>22</result></examples></method><method category="string" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Start" type="integer"/></parameters><description>Returns the index of the first occurence of <mini>Pattern</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find(r"s[a-z]+", 1)</code><result>9</result><code>"The cat snored as he slept":find(r"s[a-z]+", 10)</code><result>22</result><code>"The cat snored as he slept":find(r"s[a-z]+", -6)</code><result>22</result></examples></method><method category="string" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns the index of the first occurence of <mini>Pattern</mini> in <mini>Haystack</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find(r"[a-z]{3}")</code><result>5</result><code>"The cat snored as he slept":find(r"[0-9]+")</code><result>nil</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/></parameters><description>Returns <mini>(Index, Needle)</mini> where <mini>Index</mini> is the first occurence of <mini>Needle</mini> in <mini>Haystack</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2("cat")</code><result>(5, cat)</result><code>"The cat snored as he slept":find2("dog")</code><result>nil</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/><parameter name="Start" type="integer"/></parameters><description>Returns <mini>(Index, Needle)</mini> where <mini>Index</mini> is the first occurence of <mini>Needle</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2("s", 1)</code><result>(9, s)</result><code>"The cat snored as he slept":find2("s", 10)</code><result>(17, s)</result><code>"The cat snored as he slept":find2("s", -6)</code><result>(22, s)</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns <mini>(Index, Match)</mini> where <mini>Index</mini> is the first occurence of <mini>Pattern</mini> in <mini>Haystack</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2(r"[a-z]{3}")</code><result>(5, cat)</result><code>"The cat snored as he slept":find2(r"[0-9]+")</code><result>nil</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Start" type="integer"/></parameters><description>Returns <mini>(Index, Match)</mini> where <mini>Index</mini> is the first occurence of <mini>Pattern</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2(r"s[a-z]+", 1)</code><result>(9, snored)</result><code>"The cat snored as he slept":find2(r"s[a-z]+", 10)</code><result>(22, slept)</result><code>"The cat snored as he slept":find2(r"s[a-z]+", -6)</code><result>(22, slept)</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Start" type="tuple::integer::string"/></parameters><description>Returns <mini>(Index, Match)</mini> where <mini>Index</mini> is the first occurence of <mini>Pattern</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2(r"s[a-z]+", 1)</code><result>(9, snored)</result><code>"The cat snored as he slept":find2(r"s[a-z]+", 10)</code><result>(22, slept)</result><code>"The cat snored as he slept":find2(r"s[a-z]+", -6)</code><result>(22, slept)</result></examples></method><method category="string" name=":find2" variadic="false"><return type="tuple[integer, string]|nil"/><parameters><parameter name="Haystack" type="string"/><parameter name="Needle" type="string"/><parameter name="Start" type="tuple::integer::string"/></parameters><description>Returns <mini>(Index, Needle)</mini> where <mini>Index</mini> is the first occurence of <mini>Needle</mini> in <mini>Haystack</mini> at or after <mini>Start</mini>, or <mini>nil</mini> if no occurence is found.
</description><examples><code>"The cat snored as he slept":find2("s", 1)</code><result>(9, s)</result><code>"The cat snored as he slept":find2("s", 10)</code><result>(17, s)</result><code>"The cat snored as he slept":find2("s", -6)</code><result>(22, s)</result></examples></method><method category="string" name=":get" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/></parameters><description>Returns the contents of <mini>Buffer</mini> as a string and clears <mini>Buffer</mini>.
.. deprecated:: 2.5.0
Use <mini>Buffer:rest</mini> instead.
</description><examples><code>let B := string::buffer()
B:write("Hello world")
B:get</code><result>"Hello world"</result><code>B:get</code><result>""</result></examples></method><method category="string" name=":grow" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="sequence"/></parameters><description/><examples/></method><method category="string" name=":length" variadic="false"><return type="integer"/><parameters><parameter name="Buffer" type="string::buffer"/></parameters><description>Returns the number of bytes currently available in <mini>Buffer</mini>.
</description><examples><code>let B := string::buffer()
B:write("Hello world")
B:length</code><result>11</result></examples></method><method category="string" name=":length" variadic="false"><return type="integer"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the number of UTF-8 characters in <mini>String</mini>. Use <mini>:size</mini> to get the number of bytes.
</description><examples><code>"Hello world":length</code><result>11</result><code>"Hello world":size</code><result>11</result><code>"λ:😀 → 😺":length</code><result>7</result><code>"λ:😀 → 😺":size</code><result>16</result></examples></method><method category="string" name=":limit" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Length" type="integer"/></parameters><description>Returns the prefix of <mini>String</mini> limited to <mini>Length</mini>.
</description><examples><code>"Hello world":limit(5)</code><result>"Hello"</result><code>"Cake":limit(5)</code><result>"Cake"</result></examples></method><method category="string" name=":lower" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> with each character converted to lower case.
</description><examples><code>"Hello World":lower</code><result>"hello world"</result></examples></method><method category="string" name=":ltrim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with characters in <mini>Chars</mini> removed from the start.
</description><examples><code>" \t Hello \n":ltrim</code><result>"Hello \n"</result></examples></method><method category="string" name=":ltrim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Chars" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with characters in <mini>Chars</mini> removed from the start.
</description><examples><code>" \t Hello \n":trim(" \n")</code><result>"\t Hello"</result></examples></method><method category="string" name=":max" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property"/></parameters><description/><examples/></method><method category="string" name=":max" variadic="false"><return type="integer"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Returns <mini>max(A, B)</mini>
</description><examples><code>"Hello":max("World")</code><result>"World"</result><code>"World":max("Hello")</code><result>"World"</result><code>"abcd":max("abc")</code><result>"abcd"</result><code>"abc":max("abcd")</code><result>"abcd"</result></examples></method><method category="string" name=":min" variadic="false"><return type="integer"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Returns <mini>min(A, B)</mini>
</description><examples><code>"Hello":min("World")</code><result>"Hello"</result><code>"World":min("Hello")</code><result>"Hello"</result><code>"abcd":min("abc")</code><result>"abc"</result><code>"abc":min("abcd")</code><result>"abc"</result></examples></method><method category="string" name=":min" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property"/></parameters><description/><examples/></method><method category="string" name=":normalize" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Norm" type="string::norm"/></parameters><description>Returns a normalized copy of <mini>String</mini> using the normalizer specified by <mini>Norm</mini>.
</description><examples><code>let S := "𝕥𝕖𝕩𝕥"</code><result>"𝕥𝕖𝕩𝕥"</result><code>S:normalize(string::norm::NFD)</code><result>"𝕥𝕖𝕩𝕥"</result></examples></method><method category="string" name=":offset" variadic="false"><return type="integer"/><parameters><parameter name="String" type="string"/><parameter name="Index" type="integer"/></parameters><description>Returns the byte position of the <mini>Index</mini>-th character of <mini>String</mini>.
</description><examples><code>let S := "λ:😀 → 😺"
list(1 .. S:length, S:offset(_))</code><result>[0, 2, 3, 7, 8, 11, 12]</result></examples></method><method category="string" name=":pattern" variadic="false"><return type="string"/><parameters><parameter name="Regex" type="regex"/></parameters><description>Returns the pattern used to create <mini>Regex</mini>.
</description><examples><code>r"[0-9]+":pattern</code><result>"[0-9]+"</result></examples></method><method category="string" name=":precount" variadic="false"><return type="integer"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the number of UTF-8 characters in <mini>String</mini>. Use <mini>:size</mini> to get the number of bytes.
</description><examples><code>"Hello world":count</code><result>11</result><code>"Hello world":size</code><result>11</result><code>"λ:😀 → 😺":count</code><result>7</result><code>"λ:😀 → 😺":size</code><result>16</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Fn" type="function"/></parameters><description>Returns a copy of <mini>String</mini> with each occurence of <mini>Pattern</mini> replaced by <mini>Fn(Match, Sub₁, ..., Subₙ)</mini> where <mini>Match</mini> is the actual matched text and <mini>Subᵢ</mini> are the matched subpatterns.
</description><examples><code>"the cat snored as he slept":replace(r" ([a-z])", fun(Match, A) '-{A:upper}')</code><result>"the-Cat-Snored-As-He-Slept"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="string"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with each occurence of <mini>Pattern</mini> replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace("l", "bb")</code><result>"Hebbbbo worbbd"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with each occurence of <mini>Pattern</mini> replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace(r"l+", "bb")</code><result>"Hebbo worbbd"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Replacements" type="map"/></parameters><description>Each key in <mini>Replacements</mini> can be either a string or a regex. Each value in <mini>Replacements</mini> can be either a string or a function.
Returns a copy of <mini>String</mini> with each matching string or regex from <mini>Replacements</mini> replaced with the corresponding value. Functions are called with the matched string or regex subpatterns.
</description><examples><code>"the dog snored as he slept":replace({
r" ([a-z])" is fun(Match, A) '-{A:upper}',
"nor" is "narl"
})</code><result>"the-Dog-Snarled-As-He-Slept"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="I" type="integer"/><parameter name="J" type="integer"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with the <mini>String[I, J]</mini> is replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace(1, 6, "Goodbye")</code><result>"Goodbye world"</result><code>"Hello world":replace(-6, 0, ", how are you?")</code><result>"Hello, how are you?"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="I" type="integer"/><parameter name="Fn" type="function"/></parameters><description>Returns a copy of <mini>String</mini> with the <mini>String[I]</mini> is replaced by <mini>Fn(String[I])</mini>.
</description><examples><code>"hello world":replace(1, :upper)</code><result>"Hello world"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="I" type="integer"/><parameter name="Fn" type="integer"/><parameter name="Arg₄" type="function"/></parameters><description>Returns a copy of <mini>String</mini> with the <mini>String[I, J]</mini> is replaced by <mini>Fn(String[I, J])</mini>.
</description><examples><code>"hello world":replace(1, 6, :upper)</code><result>"HELLO world"</result></examples></method><method category="string" name=":replace" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="I" type="integer"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with the <mini>String[I]</mini> is replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace(6, "_")</code><result>"Hello_world"</result></examples></method><method category="string" name=":replace2" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Replacements" type="map"/></parameters><description>Each key in <mini>Replacements</mini> can be either a string or a regex. Each value in <mini>Replacements</mini> can be either a string or a function.
Returns a copy of <mini>String</mini> with each matching string or regex from <mini>Replacements</mini> replaced with the corresponding value. Functions are called with the matched string or regex subpatterns.
</description><examples><code>"the dog snored as he slept":replace2({
r" ([a-z])" is fun(Match, A) '-{A:upper}',
"nor" is "narl"
})</code><result>(the-Dog-Snarled-As-He-Slept, 6)</result></examples></method><method category="string" name=":replace2" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="string"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with each occurence of <mini>Pattern</mini> replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace2("l", "bb")</code><result>(Hebbbbo worbbd, 3)</result></examples></method><method category="string" name=":replace2" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/><parameter name="Replacement" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with each occurence of <mini>Pattern</mini> replaced by <mini>Replacement</mini>.
</description><examples><code>"Hello world":replace2(r"l+", "bb")</code><result>(Hebbo worbbd, 2)</result></examples></method><method category="string" name=":rest" variadic="false"><return type="string"/><parameters><parameter name="Buffer" type="string::buffer"/></parameters><description>Returns the contents of <mini>Buffer</mini> as a string and clears <mini>Buffer</mini>.
</description><examples><code>let B := string::buffer()
B:write("Hello world")
B:rest</code><result>"Hello world"</result><code>B:rest</code><result>""</result></examples></method><method category="string" name=":reverse" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns a string with the characters in <mini>String</mini> reversed.
</description><examples><code>"Hello world":reverse</code><result>"dlrow olleH"</result></examples></method><method category="string" name=":rtrim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Chars" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with characters in <mini>Chars</mini> removed from the end.
</description><examples><code>" \t Hello \n":rtrim(" \n")</code><result>" \t Hello"</result></examples></method><method category="string" name=":rtrim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with characters in <mini>Chars</mini> removed from the end.
</description><examples><code>" \t Hello \n":rtrim</code><result>" \t Hello"</result></examples></method><method category="string" name=":sha256" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="any"/></parameters><description/><examples/></method><method category="string" name=":starts" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns <mini>String</mini> if it starts with <mini>Pattern</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello world":starts(r"[A-Z]")</code><result>"Hello world"</result><code>"Hello world":starts(r"[0-9]")</code><result>nil</result></examples></method><method category="string" name=":starts" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Prefix" type="string"/></parameters><description>Returns <mini>String</mini> if it starts with <mini>Prefix</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello world":starts("Hello")</code><result>"Hello world"</result><code>"Hello world":starts("cake")</code><result>nil</result></examples></method><method category="string" name=":title" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> with the first character and each character after whitespace converted to upper case and each other case converted to lower case.
</description><examples><code>"hello world":title</code><result>"Hello World"</result><code>"HELLO WORLD":title</code><result>"Hello World"</result></examples></method><method category="string" name=":trim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Chars" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with characters in <mini>Chars</mini> removed from both ends.
</description><examples><code>" \t Hello \n":trim(" \n")</code><result>"\t Hello"</result></examples></method><method category="string" name=":trim" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns a copy of <mini>String</mini> with whitespace removed from both ends.
</description><examples><code>" \t Hello \n":trim</code><result>"Hello"</result></examples></method><method category="string" name=":unread" variadic="false"><return type="string::buffer"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Bytes" type="address"/></parameters><description>Inserts the contents of <mini>Bytes</mini> at the start of <mini>Buffer</mini>.
</description><examples/></method><method category="string" name=":upper" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>String</mini> with each character converted to upper case.
</description><examples><code>"Hello World":upper</code><result>"HELLO WORLD"</result></examples></method><method category="string" name=":utf8" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string"/></parameters><description/><examples/></method><method category="string" name=":utf8" variadic="false"><return type="string"/><parameters><parameter name="Codepoint" type="integer"/></parameters><description>Returns a UTF-8 string containing the character with unicode codepoint <mini>Codepoint</mini>.
</description><examples/></method><method category="string" name=":write" variadic="true"><return type="integer"/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value₁, ..., Valueₙ" type="any"/></parameters><description>Writes each <mini>Valueᵢ</mini> in turn to <mini>Buffer</mini>.
</description><examples><code>let B := string::buffer()
B:write("1 + 1 = ", 1 + 1)
B:rest</code><result>"1 + 1 = 2"</result></examples></method><method category="string" name="<" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ < Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" < r"[A-Za-z0-9_]+"</code><result>/[A-Za-z0-9_]+/</result><code>r"[A-Za-z0-9_]+" < r"[0-9]+"</code><result>nil</result><code>r"[0-9]+" < r"[0-9]+"</code><result>nil</result></examples></method><method category="string" name="<" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ < Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" < "World"</code><result>"World"</result><code>"World" < "Hello"</code><result>nil</result><code>"Hello" < "Hello"</code><result>nil</result><code>"abcd" < "abc"</code><result>nil</result><code>"abc" < "abcd"</code><result>"abcd"</result></examples></method><method category="string" name="<=" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ <= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" <= r"[A-Za-z0-9_]+"</code><result>/[A-Za-z0-9_]+/</result><code>r"[A-Za-z0-9_]+" <= r"[0-9]+"</code><result>nil</result><code>r"[0-9]+" <= r"[0-9]+"</code><result>/[0-9]+/</result></examples></method><method category="string" name="<=" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ <= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" <= "World"</code><result>"World"</result><code>"World" <= "Hello"</code><result>nil</result><code>"Hello" <= "Hello"</code><result>"Hello"</result><code>"abcd" <= "abc"</code><result>nil</result><code>"abc" <= "abcd"</code><result>"abcd"</result></examples></method><method category="string" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Compares <mini>A</mini> and <mini>B</mini> lexicographically and returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> respectively.
</description><examples><code>"Hello" <> "World"</code><result>-1</result><code>"World" <> "Hello"</code><result>1</result><code>"Hello" <> "Hello"</code><result>0</result><code>"abcd" <> "abc"</code><result>1</result><code>"abc" <> "abcd"</code><result>-1</result></examples></method><method category="string" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="regex"/><parameter name="B" type="regex"/></parameters><description>Compares <mini>A</mini> and <mini>B</mini> lexicographically and returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> respectively. Mainly for using regular expressions as keys in maps.
</description><examples><code>r"[0-9]+" <> r"[A-Za-z0-9_]+"</code><result>-1</result><code>r"[A-Za-z0-9_]+" <> r"[0-9]+"</code><result>1</result><code>r"[0-9]+" <> r"[0-9]+"</code><result>0</result></examples></method><method category="string" name="=" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ = Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" = "World"</code><result>nil</result><code>"World" = "Hello"</code><result>nil</result><code>"Hello" = "Hello"</code><result>"Hello"</result><code>"abcd" = "abc"</code><result>nil</result><code>"abc" = "abcd"</code><result>nil</result></examples></method><method category="string" name="=" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ = Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" = r"[A-Za-z0-9_]+"</code><result>nil</result><code>r"[A-Za-z0-9_]+" = r"[0-9]+"</code><result>nil</result><code>r"[0-9]+" = r"[0-9]+"</code><result>/[0-9]+/</result></examples></method><method category="string" name=">" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ > Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" > "World"</code><result>nil</result><code>"World" > "Hello"</code><result>"Hello"</result><code>"Hello" > "Hello"</code><result>nil</result><code>"abcd" > "abc"</code><result>"abc"</result><code>"abc" > "abcd"</code><result>nil</result></examples></method><method category="string" name=">" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ > Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" > r"[A-Za-z0-9_]+"</code><result>nil</result><code>r"[A-Za-z0-9_]+" > r"[0-9]+"</code><result>/[0-9]+/</result><code>r"[0-9]+" > r"[0-9]+"</code><result>nil</result></examples></method><method category="string" name=">=" variadic="false"><return type="regex|nil"/><parameters><parameter name="Arg₁" type="regex"/><parameter name="Arg₂" type="regex"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ >= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>r"[0-9]+" >= r"[A-Za-z0-9_]+"</code><result>nil</result><code>r"[A-Za-z0-9_]+" >= r"[0-9]+"</code><result>/[0-9]+/</result><code>r"[0-9]+" >= r"[0-9]+"</code><result>/[0-9]+/</result></examples></method><method category="string" name=">=" variadic="false"><return type="string|nil"/><parameters><parameter name="Arg₁" type="string"/><parameter name="Arg₂" type="string"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ >= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" >= "World"</code><result>nil</result><code>"World" >= "Hello"</code><result>"Hello"</result><code>"Hello" >= "Hello"</code><result>"Hello"</result><code>"abcd" >= "abc"</code><result>"abc"</result><code>"abc" >= "abcd"</code><result>nil</result></examples></method><method category="string" name="?" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Pattern" type="regex"/></parameters><description>Returns <mini>String</mini> if it matches <mini>Pattern</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"2022-03-08" ? r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>"2022-03-08"</result><code>"Not a date" ? r"([0-9]+)[/-]([0-9]+)[/-]([0-9]+)"</code><result>nil</result></examples></method><type name="byte::order"><parents><parent type="enum"/></parents><description>* <mini>::LittleEndian</mini>
* <mini>::BigEndian</mini>
</description><examples/></type><type name="regex"><parents><parent type="function"/></parents><description>A regular expression.
</description><examples/></type><type name="string::buffer"><parents><parent type="stream"/></parents><description>A string buffer that automatically grows and shrinks as required.
</description><examples/></type><type name="string::charset"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="string::interval"><parents><parent type="integer::interval"/></parents><description/><examples/></type><value name="MLStringProperties"><type name="string::properties"/><description/></value><type name="string::property"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="string"><parents><parent type="address"/><parent type="sequence"/></parents><description>A string of characters in UTF-8 encoding.
</description><examples/></type><method category="string" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="string" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="string" name="[]" variadic="false"><return type="string"/><parameters><parameter name="String" type="string"/><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the substring of <mini>String</mini> corresponding to <mini>Interval</mini> inclusively.
</description><examples/></method><method category="string" name="[]" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Index" type="integer"/></parameters><description>Returns the substring of <mini>String</mini> of length 1 at <mini>Index</mini>.
</description><examples><code>let S := "λ:😀 → 😺"
map(-7 .. 7 => (2, 2 -> S[_]))</code><result>{-7 is "λ", -6 is ":", -5 is "😀", -4 is " ", -3 is "→", -2 is " ", -1 is "😺", 0, 1 is "λ", 2 is ":", 3 is "😀", 4 is " ", 5 is "→", 6 is " ", 7 is "😺"}</result></examples></method><method category="string" name="[]" variadic="false"><return type="string|nil"/><parameters><parameter name="String" type="string"/><parameter name="Start" type="integer"/><parameter name="End" type="integer"/></parameters><description>Returns the substring of <mini>String</mini> from <mini>Start</mini> to <mini>End - 1</mini> inclusively.
</description><examples/></method><method category="string" name="[]" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::charset"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><function name="mlstringbuffercount"><return/><parameters/><description/><examples/></function><constructor name="regex"><return/><parameters><parameter name="String" type="string"/></parameters><description>Compiles <mini>String</mini> as a regular expression. Returns an error if <mini>String</mini> is not a valid regular expression.
</description><examples><code>regex("[0-9]+")</code><result>/[0-9]+/</result><code>regex("[0-9")</code><result>error("RegexError", "Missing ']'")</result></examples></constructor><function name="regex::escape"><return/><parameters><parameter name="String" type="string"/></parameters><description>Escapes characters in <mini>String</mini> that are treated specially in regular expressions.
</description><examples><code>regex::escape("Word (?)\n")</code><result>"Word \\(\\?\\)\\n"</result></examples></function><constructor name="string"><return/><parameters><parameter name="Value" type="any"/></parameters><description>Returns a representation of <mini>Value</mini> as a string.
</description><examples><code>string(100)</code><result>"100"</result><code>string(nil)</code><result>"nil"</result><code>string("Hello world!\n")</code><result>"Hello world!\n"</result><code>string([1, 2, 3])</code><result>"[1, 2, 3]"</result></examples></constructor><type name="string::buffer"><parents/><description>A string buffer that automatically grows and shrinks as required.
</description><examples/></type><constructor name="string::buffer"><return/><parameters/><description>Returns a new <mini>string::buffer</mini>
</description><examples/></constructor><type name="string::ctype"><parents><parent type="enum"/></parents><description>* <mini>::Cn</mini> - General Other Types
* <mini>::Lu</mini> - Uppercase Letter
* <mini>::Ll</mini> - Lowercase Letter
* <mini>::Lt</mini> - Titlecase Letter
* <mini>::Lm</mini> - Modifier Letter
* <mini>::Lo</mini> - Other Letter
* <mini>::Mn</mini> - Non Spacing Mark
* <mini>::Me</mini> - Enclosing Mark
* <mini>::Mc</mini> - Combining Spacing Mark
* <mini>::Nd</mini> - Decimal Digit Number
* <mini>::Nl</mini> - Letter Number
* <mini>::No</mini> - Other Number
* <mini>::Zs</mini> - Space Separator
* <mini>::Zl</mini> - Line Separator
* <mini>::Zp</mini> - Paragraph Separator
* <mini>::Cc</mini> - Control Char
* <mini>::Cf</mini> - Format Char
* <mini>::Co</mini> - Private Use Char
* <mini>::Cs</mini> - Surrogate
* <mini>::Pd</mini> - Dash Punctuation
* <mini>::Ps</mini> - Start Punctuation
* <mini>::Pe</mini> - End Punctuation
* <mini>::Pc</mini> - Connector Punctuation
* <mini>::Po</mini> - Other Punctuation
* <mini>::Sm</mini> - Math Symbol
* <mini>::Sc</mini> - Currency Symbol
* <mini>::Sk</mini> - Modifier Symbol
* <mini>::So</mini> - Other Symbol
* <mini>::Pi</mini> - Initial Punctuation
* <mini>::Pf</mini> - Final Punctuation
</description><examples/></type><function name="string::escape"><return/><parameters><parameter name="String" type="string"/></parameters><description>Escapes characters in <mini>String</mini>.
</description><examples><code>string::escape("\'Hello\nworld!\'")</code><result>"\\\'Hello\\nworld!\\\'"</result></examples></function><type name="string::norm"><parents><parent type="enum"/></parents><description>* <mini>::NFC</mini>
* <mini>::NFD</mini>
* <mini>::NFKC</mini>
* <mini>::NFKD</mini>
</description><examples/></type><function name="string::switch"><return/><parameters><parameter name="Cases..." type="string|regex"/></parameters><description>Implements <mini>switch</mini> for string values. Case values must be strings or regular expressions.
</description><examples><code>for Pet in ["cat", "dog", "mouse", "fox"] do
switch Pet: string
case "cat" do
print("Meow!\n")
case "dog" do
print("Woof!\n")
case "mouse" do
print("Squeak!\n")
else
print("???!")
end
end</code><result>nil</result><output>Meow!
Woof!
Squeak!
???!</output></examples></function><method category="string" name="stringcharset" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::property::value"/></parameters><description/><examples/></method><method category="string" name="~" variadic="false"><return type="integer"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Returns the edit distance between <mini>A</mini> and <mini>B</mini>.
</description><examples><code>"cake" ~ "cat"</code><result>2</result><code>"yell" ~ "hello"</code><result>2</result><code>"say" ~ "goodbye"</code><result>6</result><code>"goodbye" ~ "say"</code><result>6</result><code>"λ:😀 → Y" ~ "λ:X → 😺"</code><result>2</result></examples></method><method category="string" name="~>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="string"/><parameter name="B" type="string"/></parameters><description>Returns an asymmetric edit distance from <mini>A</mini> to <mini>B</mini>.
</description><examples><code>"cake" ~> "cat"</code><result>1</result><code>"yell" ~> "hello"</code><result>2</result><code>"say" ~> "goodbye"</code><result>6</result><code>"goodbye" ~> "say"</code><result>3</result><code>"λ:😀 → Y" ~> "λ:X → 😺"</code><result>4</result></examples></method></category><category name="address"><method category="address" name="!=" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> != the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" != "World"</code><result>"World"</result><code>"World" != "Hello"</code><result>"Hello"</result><code>"Hello" != "Hello"</code><result>nil</result><code>"abcd" != "abc"</code><result>"abc"</result><code>"abc" != "abcd"</code><result>"abcd"</result></examples></method><method category="address" name="+" variadic="false"><return type="address"/><parameters><parameter name="Address" type="address"/><parameter name="Offset" type="integer"/></parameters><description>Returns the address at offset <mini>Offset</mini> from <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A + 4</code><result><9:6F20776F726C64210A></result></examples></method><method category="address" name="-" variadic="false"><return type="integer"/><parameters><parameter name="Address₁" type="address"/><parameter name="Address₂" type="address"/></parameters><description>Returns the offset from <mini>Address₂</mini> to <mini>Address₁</mini>, provided <mini>Address₂</mini> is visible to <mini>Address₁</mini>.
</description><examples><code>let A := address("Hello world!\n")
let B := A + 4
B - A</code><result>4</result><code>address("world!\n") - A</code><result>error("ValueError", "Addresses are not from same base")</result></examples></method><method category="address" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="address"/></parameters><description>Appends the contents of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="address" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="address"/><parameter name="Needle" type="address"/></parameters><description>Returns the offset of the first occurence of the bytes of <mini>Needle</mini> in <mini>Haystack</mini> or <mini>nil</mini> is no occurence is found.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:find("world")</code><result>6</result><code>A:find("other")</code><result>nil</result></examples></method><method category="address" name=":find" variadic="false"><return type="integer|nil"/><parameters><parameter name="Haystack" type="address"/><parameter name="Needle" type="address"/><parameter name="Start" type="integer"/></parameters><description>Returns the offset of the first occurence of the bytes of <mini>Needle</mini> in <mini>Haystack</mini> or <mini>nil</mini> is no occurence is found.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:find("world")</code><result>6</result><code>A:find("other")</code><result>nil</result></examples></method><method category="address" name=":get16" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the signed 16-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get16</code><result>25928</result></examples></method><method category="address" name=":get16" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="byte::order"/></parameters><description>Returns the signed 16-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get16(address::LE)</code><result>25928</result><code>A:get16(address::BE)</code><result>18533</result></examples></method><method category="address" name=":get32" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the signed 32-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get32</code><result>1819043144</result></examples></method><method category="address" name=":get32" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="byte::order"/></parameters><description>Returns the signed 32-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get32(address::LE)</code><result>1819043144</result><code>A:get32(address::BE)</code><result>1214606444</result></examples></method><method category="address" name=":get64" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the signed 64-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get64</code><result>8031924123371070792</result></examples></method><method category="address" name=":get64" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="byte::order"/></parameters><description>Returns the signed 64-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get64(address::LE)</code><result>8031924123371070792</result><code>A:get64(address::BE)</code><result>5216694956355254127</result></examples></method><method category="address" name=":get8" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the signed 8-bit value at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:get8</code><result>72</result></examples></method><method category="address" name=":getf32" variadic="false"><return type="real"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the 32-bit floating point value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getf32</code><result>1.14313912243758e+27</result></examples></method><method category="address" name=":getf32" variadic="false"><return type="real"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="byte::order"/></parameters><description>Returns the 32-bit floating point value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getf32(address::LE)</code><result>1.14313912243758e+27</result><code>A:getf32(address::BE)</code><result>234929.6875</result></examples></method><method category="address" name=":getf64" variadic="false"><return type="real"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="byte::order"/></parameters><description>Returns the 64-bit floating point value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getf64(address::LE)</code><result>8.76577647882785e+228</result><code>A:getf64(address::BE)</code><result>5.83203948069194e+40</result></examples></method><method category="address" name=":getf64" variadic="false"><return type="real"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the 64-bit floating point value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getf64</code><result>8.76577647882785e+228</result></examples></method><method category="address" name=":gets" variadic="false"><return type="string"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the string consisting of the bytes at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:gets</code><result>"Hello world!\n"</result></examples></method><method category="address" name=":gets" variadic="false"><return type="string"/><parameters><parameter name="Address" type="address"/><parameter name="Size" type="integer"/></parameters><description>Returns the string consisting of the first <mini>Size</mini> bytes at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:gets(5)</code><result>"Hello"</result></examples></method><method category="address" name=":getu16" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="any"/></parameters><description>Returns the unsigned 16-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu16</code><result>25928</result></examples></method><method category="address" name=":getu16" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Arg₂" type="byte::order"/></parameters><description>Returns the unsigned 16-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu16(address::LE)</code><result>25928</result><code>A:getu16(address::BE)</code><result>18533</result></examples></method><method category="address" name=":getu32" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="any"/></parameters><description>Returns the unsigned 32-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu32</code><result>1819043144</result></examples></method><method category="address" name=":getu32" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Arg₂" type="byte::order"/></parameters><description>Returns the unsigned 32-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu32(address::LE)</code><result>1819043144</result><code>A:getu32(address::BE)</code><result>1214606444</result></examples></method><method category="address" name=":getu64" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Arg₂" type="byte::order"/></parameters><description>Returns the unsigned 64-bit value at <mini>Address</mini>. Uses <mini>Order</mini> byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu64(address::LE)</code><result>8031924123371070792</result><code>A:getu64(address::BE)</code><result>5216694956355254127</result></examples></method><method category="address" name=":getu64" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/><parameter name="Order" type="any"/></parameters><description>Returns the unsigned 64-bit value at <mini>Address</mini>. Uses the platform byte order.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu64</code><result>8031924123371070792</result></examples></method><method category="address" name=":getu8" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the unsigned 8-bit value at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:getu8</code><result>72</result></examples></method><method category="address" name=":length" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the number of bytes visible at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:length</code><result>13</result></examples></method><method category="address" name=":size" variadic="false"><return type="integer"/><parameters><parameter name="Address" type="address"/></parameters><description>Returns the number of bytes visible at <mini>Address</mini>.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A:size</code><result>13</result></examples></method><method category="address" name="<" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> < the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" < "World"</code><result>"World"</result><code>"World" < "Hello"</code><result>nil</result><code>"Hello" < "Hello"</code><result>nil</result><code>"abcd" < "abc"</code><result>nil</result><code>"abc" < "abcd"</code><result>"abcd"</result></examples></method><method category="address" name="<=" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> <= the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" <= "World"</code><result>"World"</result><code>"World" <= "Hello"</code><result>nil</result><code>"Hello" <= "Hello"</code><result>"Hello"</result><code>"abcd" <= "abc"</code><result>nil</result><code>"abc" <= "abcd"</code><result>"abcd"</result></examples></method><method category="address" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="address"/><parameter name="B" type="address"/></parameters><description>Compares the bytes at <mini>A</mini> and <mini>B</mini> lexicographically and returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> respectively.
</description><examples><code>"Hello" <> "World"</code><result>-1</result><code>"World" <> "Hello"</code><result>1</result><code>"Hello" <> "Hello"</code><result>0</result><code>"abcd" <> "abc"</code><result>1</result><code>"abc" <> "abcd"</code><result>-1</result></examples></method><method category="address" name="=" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> = the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" = "World"</code><result>nil</result><code>"World" = "Hello"</code><result>nil</result><code>"Hello" = "Hello"</code><result>"Hello"</result><code>"abcd" = "abc"</code><result>nil</result><code>"abc" = "abcd"</code><result>nil</result></examples></method><method category="address" name=">" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> > the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" > "World"</code><result>nil</result><code>"World" > "Hello"</code><result>"Hello"</result><code>"Hello" > "Hello"</code><result>nil</result><code>"abcd" > "abc"</code><result>"abc"</result><code>"abc" > "abcd"</code><result>nil</result></examples></method><method category="address" name=">=" variadic="false"><return type="address|nil"/><parameters><parameter name="Arg₁" type="address"/><parameter name="Arg₂" type="address"/></parameters><description>Returns <mini>Arg₂</mini> if the bytes at <mini>Arg₁</mini> >= the bytes at <mini>Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>"Hello" >= "World"</code><result>nil</result><code>"World" >= "Hello"</code><result>"Hello"</result><code>"Hello" >= "Hello"</code><result>"Hello"</result><code>"abcd" >= "abc"</code><result>"abc"</result><code>"abc" >= "abcd"</code><result>nil</result></examples></method><method category="address" name="@" variadic="false"><return type="address"/><parameters><parameter name="Address" type="address"/><parameter name="Offset" type="integer"/><parameter name="Length" type="integer"/></parameters><description>Returns the address at offset <mini>Offset</mini> from <mini>Address</mini> limited to <mini>Length</mini> bytes.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A @ (4, 4)</code><result><4:6F20776F></result></examples></method><method category="address" name="@" variadic="false"><return type="address"/><parameters><parameter name="Address" type="address"/><parameter name="Length" type="integer"/></parameters><description>Returns the same address as <mini>Address</mini>, limited to <mini>Length</mini> bytes.
</description><examples><code>let A := address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result><code>A @ 5</code><result><5:48656C6C6F></result></examples></method><type name="address"><parents/><description>An address represents a read-only bounded section of memory.
</description><examples/></type><constructor category="address" name="address" variadic="false"><return type="address"/><parameters><parameter name="String" type="string"/></parameters><description>Returns an address view of <mini>String</mini>.
</description><examples><code>address("Hello world!\n")</code><result><13:48656C6C6F20776F726C64210A></result></examples></constructor></category><category name="buffer"><method category="buffer" name=":buffer" variadic="false"><return type="buffer"/><parameters><parameter name="Length" type="integer"/></parameters><description>Allocates a new buffer with <mini>Length</mini> bytes.
</description><examples><code>buffer(16)</code><result><16:00000000000000000000000000000000></result></examples></method><method category="buffer" name=":buffer" variadic="false"><return type="buffer"/><parameters><parameter name="Source" type="address"/></parameters><description>Allocates a new buffer with the same size and initial contents as <mini>Source</mini>.
</description><examples><code>buffer("Hello world")</code><result><11:48656C6C6F20776F726C64></result></examples></method><method category="buffer" name=":put" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="address"/></parameters><description>Puts the bytes of <mini>Value</mini> in <mini>Buffer</mini>.
</description><examples><code>buffer(10):put("Hello\0\0\0\0\0")</code><result><10:48656C6C6F0000000000></result></examples></method><method category="buffer" name=":put16" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 16-bit signed value. Uses the platform byte order.
</description><examples><code>buffer(2):put16(12345)</code><result><2:3930></result></examples></method><method category="buffer" name=":put16" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 16-bit signed value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(2):put16(12345, address::LE)</code><result><2:3930></result><code>buffer(2):put16(12345, address::BE)</code><result><2:3039></result></examples></method><method category="buffer" name=":put32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 32-bit signed value. Uses the platform byte order.
</description><examples><code>buffer(4):put32(12345)</code><result><4:39300000></result></examples></method><method category="buffer" name=":put32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 32-bit signed value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(4):put32(12345, address::LE)</code><result><4:39300000></result><code>buffer(4):put32(12345, address::BE)</code><result><4:00003039></result></examples></method><method category="buffer" name=":put64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 64-bit signed value. Uses the platform byte order.
</description><examples><code>buffer(8):put64(12345)</code><result><8:3930000000000000></result></examples></method><method category="buffer" name=":put64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 64-bit signed value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(8):put64(12345, address::LE)</code><result><8:3930000000000000></result><code>buffer(8):put64(12345, address::BE)</code><result><8:0000000000003039></result></examples></method><method category="buffer" name=":put8" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 8-bit signed value.
</description><examples><code>buffer(8):put8(64)</code><result><8:4000000000000000></result></examples></method><method category="buffer" name=":putf32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="real"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as a 32-bit floating point value. Uses the platform byte order.
</description><examples><code>buffer(4):putf32(1.23456789)</code><result><4:52069E3F></result></examples></method><method category="buffer" name=":putf32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="real"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as a 32-bit floating point value. Uses little endian byte order.
</description><examples><code>buffer(4):putf32(1.23456789, address::LE)</code><result><4:52069E3F></result><code>buffer(4):putf32(1.23456789, address::BE)</code><result><4:3F9E0652></result></examples></method><method category="buffer" name=":putf64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="real"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as a 64-bit floating point value. Uses the platform byte order.
</description><examples><code>buffer(8):putf64(1.23456789)</code><result><8:1BDE8342CAC0F33F></result></examples></method><method category="buffer" name=":putf64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="real"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as a 64-bit floating point value. Uses little endian byte order.
</description><examples><code>buffer(8):putf64(1.23456789, address::LE)</code><result><8:1BDE8342CAC0F33F></result><code>buffer(8):putf64(1.23456789, address::BE)</code><result><8:3FF3C0CA4283DE1B></result></examples></method><method category="buffer" name=":putu16" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 16-bit unsigned value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(2):putu16(12345, address::LE)</code><result><2:3930></result><code>buffer(2):putu16(12345, address::BE)</code><result><2:3039></result></examples></method><method category="buffer" name=":putu16" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 16-bit unsigned value. Uses the platform byte order.
</description><examples><code>buffer(2):putu16(12345)</code><result><2:3930></result></examples></method><method category="buffer" name=":putu32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 32-bit unsigned value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(4):putu32(12345, address::LE)</code><result><4:39300000></result><code>buffer(4):putu32(12345, address::BE)</code><result><4:00003039></result></examples></method><method category="buffer" name=":putu32" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 32-bit unsigned value. Uses the platform byte order.
</description><examples><code>buffer(4):putu32(12345)</code><result><4:39300000></result></examples></method><method category="buffer" name=":putu64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/><parameter name="Order" type="byte::order"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 64-bit unsigned value. Uses <mini>Order</mini> byte order.
</description><examples><code>buffer(8):putu64(12345, address::LE)</code><result><8:3930000000000000></result><code>buffer(8):putu64(12345, address::BE)</code><result><8:0000000000003039></result></examples></method><method category="buffer" name=":putu64" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 64-bit unsigned value. Uses the platform byte order.
</description><examples><code>buffer(8):putu64(12345)</code><result><8:3930000000000000></result></examples></method><method category="buffer" name=":putu8" variadic="false"><return type="buffer"/><parameters><parameter name="Buffer" type="buffer"/><parameter name="Value" type="integer"/></parameters><description>Puts <mini>Value</mini> in <mini>Buffer</mini> as an 8-bit unsigned value.
</description><examples><code>buffer(8):put8(64)</code><result><8:4000000000000000></result></examples></method><type name="buffer"><parents><parent type="address"/></parents><description>A buffer represents a writable bounded section of memory.
</description><examples/></type></category><category name="boolean"><method category="boolean" name="!=" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ != Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true != true</code><result>nil</result><code>true != false</code><result>false</result><code>false != true</code><result>true</result><code>false != false</code><result>nil</result></examples></method><method category="boolean" name="-" variadic="false"><return type="boolean"/><parameters><parameter name="Bool" type="boolean"/></parameters><description>Returns the logical inverse of <mini>Bool</mini>
</description><examples/></method><method category="boolean" name="/\" variadic="true"><return type="boolean"/><parameters><parameter name="Bool₁" type="boolean"/><parameter name="Bool₂" type="boolean"/></parameters><description>Returns the logical and of <mini>Bool₁</mini> and <mini>Bool₂</mini>.
</description><examples><code>true /\ true</code><result>true</result><code>true /\ false</code><result>false</result><code>false /\ true</code><result>false</result><code>false /\ false</code><result>false</result></examples></method><method category="boolean" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="boolean"/></parameters><description>Appends <mini>"true"</mini> or <mini>"false"</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="boolean" name="<" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ < Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true < true</code><result>nil</result><code>true < false</code><result>nil</result><code>false < true</code><result>true</result><code>false < false</code><result>nil</result></examples></method><method category="boolean" name="<=" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ <= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true <= true</code><result>true</result><code>true <= false</code><result>nil</result><code>false <= true</code><result>true</result><code>false <= false</code><result>false</result></examples></method><method category="boolean" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Bool₁" type="boolean"/><parameter name="Bool₂" type="boolean"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Bool₁</mini> is less than, equal to or greater than <mini>Bool₂</mini>. <mini>true</mini> is considered greater than <mini>false</mini>.
</description><examples/></method><method category="boolean" name="=" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ == Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true = true</code><result>true</result><code>true = false</code><result>nil</result><code>false = true</code><result>nil</result><code>false = false</code><result>false</result></examples></method><method category="boolean" name=">" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ > Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true > true</code><result>nil</result><code>true > false</code><result>false</result><code>false > true</code><result>nil</result><code>false > false</code><result>nil</result></examples></method><method category="boolean" name="><" variadic="false"><return type="boolean"/><parameters><parameter name="Bool₁" type="boolean"/><parameter name="Bool₂" type="boolean"/></parameters><description>Returns the logical xor of <mini>Bool₁</mini> and <mini>Bool₂</mini>.
</description><examples><code>true >< true</code><result>false</result><code>true >< false</code><result>true</result><code>false >< true</code><result>true</result><code>false >< false</code><result>false</result></examples></method><method category="boolean" name=">=" variadic="false"><return type="boolean|nil"/><parameters><parameter name="Arg₁" type="boolean"/><parameter name="Arg₂" type="boolean"/></parameters><description>Returns <mini>Arg₂</mini> if <mini>Arg₁ >= Arg₂</mini> and <mini>nil</mini> otherwise.
</description><examples><code>true >= true</code><result>true</result><code>true >= false</code><result>false</result><code>false >= true</code><result>nil</result><code>false >= false</code><result>false</result></examples></method><type name="boolean"><parents/><description>A boolean value (either <mini>true</mini> or <mini>false</mini>).
</description><examples/></type><method category="boolean" name="\/" variadic="true"><return type="boolean"/><parameters><parameter name="Bool₁" type="boolean"/><parameter name="Bool₂" type="boolean"/></parameters><description>Returns the logical or of <mini>Bool₁</mini> and <mini>Bool₂</mini>.
</description><examples><code>true \/ true</code><result>true</result><code>true \/ false</code><result>true</result><code>false \/ true</code><result>true</result><code>false \/ false</code><result>false</result></examples></method><constructor category="boolean" name="boolean" variadic="false"><return type="boolean|error"/><parameters><parameter name="String" type="string"/></parameters><description>Returns <mini>true</mini> if <mini>String</mini> equals <mini>"true"</mini> (ignoring case).
Returns <mini>false</mini> if <mini>String</mini> equals <mini>"false"</mini> (ignoring case).
Otherwise returns an error.
</description><examples/></constructor><function name="boolean::random"><return/><parameters><parameter name="P?" type="number"/></parameters><description>Returns a random boolean that has probability <mini>P</mini> of being <mini>true</mini>. If omitted, <mini>P</mini> defaults to <mini>0.5</mini>.
</description><examples/></function></category><category name="number"><method category="number" name="!=" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A != B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="!=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A != B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="!=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A != B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="!=" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A != B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="!|" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns <mini>Int₂</mini> if it is not divisible by <mini>Int₁</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="number" name="%" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns the remainder of <mini>Int₁</mini> divided by <mini>Int₂</mini>.
Note: the result is calculated by rounding towards 0. In particular, if <mini>Int₁</mini> is negative, the result will be negative.
For a nonnegative remainder, use <mini>Int₁ mod Int₂</mini>.
</description><examples/></method><method category="number" name="%" variadic="false"><return type="integer"/><parameters><parameter name="Real₁" type="real"/><parameter name="Real₂" type="real"/></parameters><description>Returns the remainder of <mini>Real₁</mini> divided by <mini>Real₂</mini>.
Note: the result is calculated by rounding towards 0. In particular, if <mini>Real₁</mini> is negative, the result will be negative.
For a nonnegative remainder, use <mini>Real₁ mod Real₂</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="complex"/><parameters><parameter name="A" type="double"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="complex"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="real"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="complex"/></parameters><description>complex <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="*" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A * B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="real"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="complex"/></parameters><description>complex <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="complex"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="complex"/><parameters><parameter name="A" type="double"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="+" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A + B</mini>.
</description><examples/></method><method category="number" name="++" variadic="false"><return type="integer"/><parameters><parameter name="Int" type="integer"/></parameters><description>Returns <mini>Int + 1</mini>
</description><examples/></method><method category="number" name="++" variadic="false"><return type="real"/><parameters><parameter name="Real" type="double"/></parameters><description>Returns <mini>Real + 1</mini>
</description><examples/></method><method category="number" name="-" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="real"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="complex"/></parameters><description>complex <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="complex"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="complex"/><parameters><parameter name="A" type="double"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A - B</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/></parameters><description>Returns <mini>-A</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/></parameters><description>Returns <mini>-A</mini>.
</description><examples/></method><method category="number" name="-" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/></parameters><description>Returns <mini>-A</mini>.
</description><examples/></method><method category="number" name="--" variadic="false"><return type="integer"/><parameters><parameter name="Int" type="integer"/></parameters><description>Returns <mini>Int - 1</mini>
</description><examples/></method><method category="number" name="--" variadic="false"><return type="real"/><parameters><parameter name="Real" type="double"/></parameters><description>Returns <mini>Real - 1</mini>
</description><examples/></method><method category="number" name="/" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="real"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="complex"/></parameters><description>complex <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="complex"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="complex"/><parameters><parameter name="A" type="double"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A / B</mini>.
</description><examples/></method><method category="number" name="/" variadic="false"><return type="integer|real"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns <mini>Int₁ / Int₂</mini> as an integer if the division is exact, otherwise as a real.
</description><examples><code>let N := 10 / 2</code><result>5</result><code>type(N)</code><result><<integer32>></result><code>let R := 10 / 3</code><result>3.33333333333333</result><code>type(R)</code><result><<double>></result></examples></method><method category="number" name="/\" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns the bitwise and of <mini>A</mini> and <mini>B</mini>.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="double"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="integer"/><parameter name="Base" type="integer"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini> in base <mini>Base</mini>.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="double"/><parameter name="Format" type="string"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini> using <mini>Format</mini> as a (checked) <c>printf</c> format string.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="integer"/><parameter name="Format" type="string"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini> using <mini>Format</mini> as a (checked) <c>printf</c> format string.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="complex"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="integer"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini> in base <mini>10</mini>.
</description><examples/></method><method category="number" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="complex"/><parameter name="Format" type="string"/></parameters><description>Appends <mini>Value</mini> to <mini>Buffer</mini> using <mini>Format</mini> as a (checked) <c>printf</c> format string for the real and imaginary components.
</description><examples/></method><method category="number" name=":bsf" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/></parameters><description>Returns the index of the least significant 1-bit of <mini>A</mini>, or <mini>0</mini> if <mini>A = 0</mini>.
</description><examples><code>16:bsf</code><result>5</result><code>10:bsf</code><result>2</result><code>0:bsf</code><result>0</result></examples></method><method category="number" name=":bsr" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/></parameters><description>Returns the index of the most significant 1-bit of <mini>A</mini>, or <mini>0</mini> if <mini>A = 0</mini>.
</description><examples><code>16:bsr</code><result>5</result><code>10:bsr</code><result>4</result><code>0:bsr</code><result>0</result></examples></method><method category="number" name=":dec" variadic="false"><return type="integer"/><parameters><parameter name="X" type="integer"/></parameters><description>Atomic equivalent to <mini>X := old - 1</mini>.
</description><examples/></method><method category="number" name=":dec" variadic="false"><return type="integer"/><parameters><parameter name="X" type="integer"/><parameter name="Y" type="integer"/></parameters><description>Atomic equivalent to <mini>X := old - Y</mini>.
</description><examples/></method><method category="number" name=":div" variadic="false"><return type="integer"/><parameters><parameter name="Real₁" type="real"/><parameter name="Real₂" type="real"/></parameters><description>Returns the quotient of <mini>Real₁</mini> divided by <mini>Real₂</mini>.
The result is calculated by rounding down in all cases.
</description><examples/></method><method category="number" name=":div" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns the quotient of <mini>Int₁</mini> divided by <mini>Int₂</mini>.
The result is calculated by rounding down in all cases.
</description><examples/></method><method category="number" name=":i" variadic="false"><return type="real"/><parameters><parameter name="Z" type="complex"/></parameters><description>Returns the imaginary component of <mini>Z</mini>.
</description><examples/></method><method category="number" name=":inc" variadic="false"><return type="integer"/><parameters><parameter name="X" type="integer"/></parameters><description>Atomic equivalent to <mini>X := old + 1</mini>.
</description><examples/></method><method category="number" name=":inc" variadic="false"><return type="integer"/><parameters><parameter name="X" type="integer"/><parameter name="Y" type="integer"/></parameters><description>Atomic equivalent to <mini>X := old + Y</mini>.
</description><examples/></method><method category="number" name=":isfinite" variadic="false"><return type="number|nil"/><parameters><parameter name="Number" type="number"/><parameter name="Arg₂" type="double"/></parameters><description>Returns <mini>Number</mini> if it is finite (neither |plusmn|\ |infin| nor </description><examples/></method><method category="number" name=":isnan" variadic="false"><return type="number|nil"/><parameters><parameter name="Number" type="number"/><parameter name="Arg₂" type="double"/></parameters><description>Returns <mini>Number</mini> if it is </description><examples/></method><method category="number" name=":max" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>max(A, B)</mini>.
</description><examples/></method><method category="number" name=":max" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>max(A, B)</mini>.
</description><examples/></method><method category="number" name=":max" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>max(A, B)</mini>.
</description><examples/></method><method category="number" name=":max" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>max(A, B)</mini>.
</description><examples/></method><method category="number" name=":min" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>min(A, B)</mini>.
</description><examples/></method><method category="number" name=":min" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>min(A, B)</mini>.
</description><examples/></method><method category="number" name=":min" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>min(A, B)</mini>.
</description><examples/></method><method category="number" name=":min" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>min(A, B)</mini>.
</description><examples/></method><method category="number" name=":mod" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="real"/><parameter name="Int₂" type="real"/></parameters><description>Returns the remainder of <mini>Int₁</mini> divided by <mini>Int₂</mini>.
Note: the result is calculated by rounding down in all cases. In particular, the result is always nonnegative.
</description><examples/></method><method category="number" name=":mod" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns the remainder of <mini>Int₁</mini> divided by <mini>Int₂</mini>.
Note: the result is calculated by rounding down in all cases. In particular, the result is always nonnegative.
</description><examples/></method><method category="number" name=":popcount" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/></parameters><description>Returns the number of bits set in <mini>A</mini>.
</description><examples/></method><method category="number" name=":r" variadic="false"><return type="real"/><parameters><parameter name="Z" type="complex"/></parameters><description>Returns the real component of <mini>Z</mini>.
</description><examples/></method><method category="number" name=":subsets" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="integer::range"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="number" name=":subsets" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="integer::interval"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="number" name="<" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A < B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A < B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A < B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A < B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<<" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A << B</mini>.
</description><examples/></method><method category="number" name="<=" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A <= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<=" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A <= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A <= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A <= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Int₁</mini> is less than, equal to or greater than <mini>Int₂</mini>.
</description><examples/></method><method category="number" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Real₂" type="double"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Int₁</mini> is less than, equal to or greater than <mini>Real₂</mini>.
</description><examples/></method><method category="number" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Real₁" type="double"/><parameter name="Int₂" type="integer"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Real₁</mini> is less than, equal to or greater than <mini>Int₂</mini>.
</description><examples/></method><method category="number" name="<>" variadic="false"><return type="integer"/><parameters><parameter name="Real₁" type="double"/><parameter name="Real₂" type="double"/></parameters><description>Returns <mini>-1</mini>, <mini>0</mini> or <mini>1</mini> depending on whether <mini>Real₁</mini> is less than, equal to or greater than <mini>Real₂</mini>.
</description><examples/></method><method category="number" name="=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A = B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="=" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A = B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="=" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A = B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A = B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A > B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A > B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A > B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A > B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name="><" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns the bitwise xor of <mini>A</mini> and <mini>B</mini>.
</description><examples/></method><method category="number" name=">=" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A >= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>B</mini> if <mini>A >= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">=" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A >= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">=" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>B</mini> if <mini>A >= B</mini>, otherwise returns <mini>nil</mini>.
</description><examples/></method><method category="number" name=">>" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A >> B</mini>.
</description><examples/></method><type name="complex"><parents><parent type="number"/></parents><description/><examples/></type><type name="double"><parents><parent type="real"/></parents><description/><examples/></type><type name="integer"><parents><parent type="real"/><parent type="function"/></parents><description>A 64-bit signed integer value.
<mini>fun (I: integer)(Arg₁, ..., Argₙ): any | nil</mini>
Returns the <mini>I</mini>-th argument or <mini>nil</mini> if there is no <mini>I</mini>-th argument. Negative values of <mini>I</mini> are counted from the last argument.
In particular, <mini>0(...)</mini> always returns <mini>nil</mini> and <mini>1</mini> behaves as the identity function.
</description><examples><code>2("a", "b", "c")</code><result>"b"</result><code>-1("a", "b", "c")</code><result>"c"</result><code>4("a", "b", "c")</code><result>nil</result><code>0("a", "b", "c")</code><result>nil</result></examples></type><type name="number"><parents/><description>Base type for numbers.
</description><examples/></type><type name="real"><parents><parent type="complex"/></parents><description/><examples/></type><method category="number" name="\/" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns the bitwise or of <mini>A</mini> and <mini>B</mini>.
</description><examples/></method><method category="number" name="complex" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="real"/></parameters><description/><examples/></method><constructor category="number" name="complex" variadic="false"><return type="complex|error"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the complex number in <mini>String</mini> or an error if <mini>String</mini> does not contain a valid complex number.
</description><examples/></constructor><method category="number" name="complex" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="real"/><parameter name="Arg₂" type="real"/></parameters><description/><examples/></method><constructor category="number" name="integer" variadic="false"><return type="integer|error"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the base <mini>10</mini> integer in <mini>String</mini> or an error if <mini>String</mini> does not contain a valid integer.
</description><examples><code>integer("123")</code><result>123</result><code>integer("ABC")</code><result>error("ValueError", "Error parsing integer")</result></examples></constructor><constructor category="number" name="integer" variadic="false"><return type="integer|error"/><parameters><parameter name="String" type="string"/><parameter name="Base" type="integer"/></parameters><description>Returns the base <mini>Base</mini> integer in <mini>String</mini> or an error if <mini>String</mini> does not contain a valid integer.
</description><examples/></constructor><constructor category="number" name="integer" variadic="false"><return type="integer"/><parameters><parameter name="Real" type="double"/></parameters><description>Converts <mini>Real</mini> to an integer (using default rounding).
</description><examples/></constructor><function name="integer::random"><return/><parameters><parameter name="Min?" type="number"/><parameter name="Max?" type="number"/></parameters><description>Returns a random integer between <mini>Min</mini> and <mini>Max</mini> (where <mini>Max</mini> <math>\leq 2^{32} - 1</math>).
If omitted, <mini>Min</mini> defaults to <mini>0</mini> and <mini>Max</mini> defaults to <math>2^{32} - 1</math>.
</description><examples/></function><function name="integer::random_cycle"><return/><parameters><parameter name="Max" type="integer"/></parameters><description>Returns a random cyclic permutation (no sub-cycles) of <mini>1, ..., Max</mini>.
</description><examples/></function><function name="integer::random_cycle"><return/><parameters><parameter name="Max" type="integer"/></parameters><description>Returns a random cyclic permutation (no sub-cycles) of <mini>1, ..., Max</mini>.
</description><examples/></function><function name="integer::random_permutation"><return/><parameters><parameter name="Max" type="integer"/></parameters><description>Returns a random permutation of <mini>1, ..., Max</mini>.
</description><examples/></function><function name="integer::random_permutation"><return/><parameters><parameter name="Max" type="integer"/></parameters><description>Returns a random permutation of <mini>1, ..., Max</mini>.
</description><examples/></function><method category="number" name="number" variadic="false"><return type="integer|real|complex|error"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the number in <mini>String</mini> or an error if <mini>String</mini> does not contain a valid number.
</description><examples/></method><method category="number" name="real" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="complex"/></parameters><description/><examples/></method><constructor category="number" name="real" variadic="false"><return type="real|error"/><parameters><parameter name="String" type="string"/></parameters><description>Returns the real number in <mini>String</mini> or an error if <mini>String</mini> does not contain a valid real number.
</description><examples/></constructor><method category="number" name="real" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="integer"/></parameters><description/><examples/></method><value name="real::Inf"><type name="real"/><description>Positive infinity.
</description></value><value name="real::NaN"><type name="real"/><description>Not a number.
</description></value><function name="real::random"><return/><parameters><parameter name="Min?" type="number"/><parameter name="Max?" type="number"/></parameters><description>Returns a random real between <mini>Min</mini> and <mini>Max</mini>.
If omitted, <mini>Min</mini> defaults to <mini>0</mini> and <mini>Max</mini> defaults to <mini>1</mini>.
</description><examples/></function><method category="number" name="|" variadic="false"><return type="integer"/><parameters><parameter name="Int₁" type="integer"/><parameter name="Int₂" type="integer"/></parameters><description>Returns <mini>Int₂</mini> if it is divisible by <mini>Int₁</mini> and <mini>nil</mini> otherwise.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/></parameters><description>Returns <mini>~A</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="real"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="complex"/></parameters><description>complex <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/></parameters><description>Returns <mini>~A</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="complex"/><parameters><parameter name="A" type="double"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="real"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="real"/><parameters><parameter name="A" type="double"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="complex"/><parameters><parameter name="A" type="complex"/><parameter name="B" type="double"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="integer"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="integer"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method><method category="number" name="~" variadic="false"><return type="complex"/><parameters><parameter name="A" type="integer"/><parameter name="B" type="complex"/></parameters><description>Returns <mini>A ~ B</mini>.
</description><examples/></method></category><category name="interval"><method category="interval" name="!=" variadic="false"><return type="integer::interval|nil"/><parameters><parameter name="A" type="integer::interval"/><parameter name="B" type="integer::interval"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name="*" variadic="false"><return type="integer::interval"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Scale" type="integer"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name="*" variadic="false"><return type="integer::interval"/><parameters><parameter name="Scale" type="integer"/><parameter name="Interval" type="integer::interval"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name="+" variadic="false"><return type="integer::interval"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Shift" type="integer"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name="+" variadic="false"><return type="integer::interval"/><parameters><parameter name="Shift" type="integer"/><parameter name="Interval" type="integer::interval"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name="-" variadic="false"><return type="integer::interval"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Shift" type="integer"/></parameters><description>Returns a interval
</description><examples/></method><method category="interval" name=".." variadic="false"><return type="integer::range"/><parameters><parameter name="Start" type="integer"/><parameter name="Limit" type="integer"/><parameter name="Step" type="integer"/></parameters><description>Returns a range from <mini>Start</mini> to <mini>Limit</mini> (inclusive) with step <mini>Step</mini>.
</description><examples/></method><method category="interval" name=".." variadic="false"><return type="real::interval"/><parameters><parameter name="Start" type="number"/><parameter name="Limit" type="number"/></parameters><description/><examples/></method><method category="interval" name=".." variadic="false"><return type="integer::interval"/><parameters><parameter name="Start" type="integer"/><parameter name="Limit" type="integer"/></parameters><description>Returns a interval from <mini>Start</mini> to <mini>Limit</mini> (inclusive).
</description><examples/></method><method category="interval" name="..<" variadic="false"><return type="integer::interval"/><parameters><parameter name="Start" type="integer"/><parameter name="Limit" type="integer"/></parameters><description>Returns a interval from <mini>Start</mini> to <mini>Limit</mini> (exclusive).
</description><examples/></method><method category="interval" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="string::interval"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="interval" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="integer::interval"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="interval" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="integer::range"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="interval" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Value" type="real::interval"/></parameters><description>Appends a representation of <mini>Value</mini> to <mini>Buffer</mini>.
</description><examples/></method><method category="interval" name=":between" variadic="false"><return type="X|nil"/><parameters><parameter name="X" type="integer"/><parameter name="Interval" type="real::interval"/></parameters><description/><examples/></method><method category="interval" name=":between" variadic="false"><return type="X|nil"/><parameters><parameter name="X" type="double"/><parameter name="Interval" type="real::interval"/></parameters><description/><examples/></method><method category="interval" name=":between" variadic="false"><return type="X|nil"/><parameters><parameter name="X" type="integer"/><parameter name="Interval" type="integer::interval"/></parameters><description/><examples/></method><method category="interval" name=":between" variadic="false"><return type="X|nil"/><parameters><parameter name="X" type="double"/><parameter name="Interval" type="integer::interval"/></parameters><description/><examples/></method><method category="interval" name=":bin" variadic="false"><return type="integer|nil"/><parameters><parameter name="Interval" type="integer::range"/><parameter name="Value" type="integer"/></parameters><description/><examples/></method><method category="interval" name=":bin" variadic="false"><return type="integer|nil"/><parameters><parameter name="Interval" type="integer::range"/><parameter name="Value" type="double"/></parameters><description/><examples/></method><method category="interval" name=":by" variadic="false"><return type="real::range"/><parameters><parameter name="Interval" type="real::interval"/><parameter name="Step" type="number"/></parameters><description/><examples/></method><method category="interval" name=":by" variadic="false"><return type="real::range"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Step" type="double"/></parameters><description/><examples/></method><method category="interval" name=":by" variadic="false"><return type="integer::range"/><parameters><parameter name="Start" type="integer"/><parameter name="Step" type="integer"/></parameters><description>Returns a unlimited range from <mini>Start</mini> in steps of <mini>Step</mini>.
</description><examples/></method><method category="interval" name=":by" variadic="false"><return type="integer::range"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Step" type="integer"/></parameters><description>Returns a range with the same limits as <mini>Interval</mini> but with step <mini>Step</mini>.
</description><examples/></method><method category="interval" name=":count" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the number of values in <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":count" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the number of values in <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":down" variadic="false"><return type="integer::range"/><parameters><parameter name="Start" type="integer"/></parameters><description>Returns an unlimited range from <mini>Start</mini>.
</description><examples/></method><method category="interval" name=":first" variadic="false"><return type="real"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the start of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":first" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the start of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":in" variadic="false"><return type="integer::range|real::range"/><parameters><parameter name="Interval" type="integer::interval"/><parameter name="Count" type="integer"/></parameters><description/><examples/></method><method category="interval" name=":in" variadic="false"><return type="real::range"/><parameters><parameter name="Interval" type="real::interval"/><parameter name="Count" type="integer"/></parameters><description/><examples/></method><method category="interval" name=":last" variadic="false"><return type="real"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the limit of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":last" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the limit of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":limit" variadic="false"><return type="real"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the limit of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":limit" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the limit of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":precount" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the number of values in <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":precount" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the number of values in <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":random" variadic="false"><return type="real"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description/><examples/></method><method category="interval" name=":random" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description/><examples/></method><method category="interval" name=":start" variadic="false"><return type="real"/><parameters><parameter name="Interval" type="real::interval"/></parameters><description>Returns the start of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":start" variadic="false"><return type="integer"/><parameters><parameter name="Interval" type="integer::interval"/></parameters><description>Returns the start of <mini>Interval</mini>.
</description><examples/></method><method category="interval" name=":up" variadic="false"><return type="integer::interval"/><parameters><parameter name="Start" type="integer"/></parameters><description>Returns an unlimited interval from <mini>Start</mini>.
</description><examples/></method><method category="interval" name=":up" variadic="false"><return type="integer::interval"/><parameters><parameter name="Start" type="integer"/><parameter name="Count" type="integer"/></parameters><description>Returns an interval from <mini>Start</mini> to <mini>Start + Count - 1</mini> (inclusive).
</description><examples/></method><method category="interval" name="=" variadic="false"><return type="integer::interval|nil"/><parameters><parameter name="A" type="integer::interval"/><parameter name="B" type="integer::interval"/></parameters><description>Returns a interval
</description><examples/></method><type name="integer::interval"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="integer::range"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="real::interval"><parents><parent type="sequence"/></parents><description/><examples/></type><type name="real::range"><parents><parent type="sequence"/></parents><description/><examples/></type></category><category name="stream"><method category="stream" name=":close" variadic="false"><return type="nil"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Closes <mini>Stream</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":copy" variadic="false"><return type="integer"/><parameters><parameter name="Source" type="stream"/><parameter name="Destination" type="stream"/><parameter name="Count" type="integer"/></parameters><description>Copies upto <mini>Count</mini> bytes from <mini>Source</mini> to <mini>Destination</mini>.
</description><examples/></method><method category="stream" name=":copy" variadic="false"><return type="integer"/><parameters><parameter name="Source" type="stream"/><parameter name="Destination" type="stream"/></parameters><description>Copies the remaining bytes from <mini>Source</mini> to <mini>Destination</mini>.
</description><examples/></method><method category="stream" name=":flush" variadic="false"><return type=""/><parameters><parameter name="Stream" type="stream"/></parameters><description>Flushes <mini>Stream</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":flush" variadic="false"><return type=""/><parameters><parameter name="Stream" type="stream::buffered"/></parameters><description>Writes any bytes in the buffer.
</description><examples/></method><method category="stream" name=":parse" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="stream"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="stream" name=":read" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream::fd"/><parameter name="Dest" type="buffer"/></parameters><description>Reads from <mini>Stream</mini> into <mini>Dest</mini> returning the actual number of bytes read.
</description><examples/></method><method category="stream" name=":read" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini> upto <mini>Count</mini> characters. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":read" variadic="false"><return type="address|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini> upto <mini>Count</mini> characters. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":read" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream"/><parameter name="Buffer" type="buffer"/></parameters><description>Reads bytes from <mini>Stream</mini> into <mini>Buffer</mini> to <mini>Stream</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":read" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Equivalent to <mini>Stream:readi(SIZE_MAX, '\n')</mini>.
</description><examples/></method><method category="stream" name=":readi" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/><parameter name="Delimiters" type="string"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto and including any character in <mini>Delimiters</mini>. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readi" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Delimiters" type="string"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto and including any character in <mini>Delimiters</mini>. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readi" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/><parameter name="Delimiters" type="string"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto and including any character in <mini>Delimiters</mini> or <mini>Count</mini> characters, whichever comes first. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readi" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Delimiters" type="string"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto and including any character in <mini>Delimiters</mini> or <mini>Count</mini> characters, whichever comes first. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":reads" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini> upto <mini>Count</mini> characters. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readx" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/><parameter name="Delimiters" type="string"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto but excluding any character in <mini>Delimiters</mini> or <mini>Count</mini> characters, whichever comes first. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readx" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Delimiters" type="string"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto but excluding any character in <mini>Delimiters</mini>. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readx" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Delimiters" type="string"/><parameter name="Count" type="integer"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto but excluding any character in <mini>Delimiters</mini> or <mini>Count</mini> characters, whichever comes first. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":readx" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/><parameter name="Delimiters" type="string"/></parameters><description>Returns the next text from <mini>Stream</mini>, upto but excluding any character in <mini>Delimiters</mini>. Returns <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":rest" variadic="false"><return type="Type|nil"/><parameters><parameter name="Stream" type="stream"/><parameter name="Type" type="type"/></parameters><description>Returns the remainder of <mini>Stream</mini> or <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":rest" variadic="false"><return type="string|nil"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Returns the remainder of <mini>Stream</mini> or <mini>nil</mini> if <mini>Stream</mini> is empty.
</description><examples/></method><method category="stream" name=":seek" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream"/><parameter name="Offset" type="integer"/><parameter name="Mode" type="stream::seek"/></parameters><description>Sets the position for the next read or write in <mini>Stream</mini> to <mini>Offset</mini> using <mini>Mode</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":tell" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream"/></parameters><description>Gets the position for the next read or write in <mini>Stream</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":write" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream"/><parameter name="Address" type="address"/></parameters><description>Writes the bytes at <mini>Address</mini> to <mini>Stream</mini>. This method should be overridden for streams defined in Minilang.
</description><examples/></method><method category="stream" name=":write" variadic="false"><return type="integer"/><parameters><parameter name="Stream" type="stream::fd"/><parameter name="Source" type="address"/></parameters><description>Writes from <mini>Source</mini> to <mini>Stream</mini> returning the actual number of bytes written.
</description><examples/></method><method category="stream" name=":write" variadic="true"><return type="integer"/><parameters><parameter name="Stream" type="stream"/><parameter name="Value₁, ..., Valueₙ" type="any"/></parameters><description>Writes each <mini>Valueᵢ</mini> in turn to <mini>Stream</mini>.
</description><examples/></method><type name="stream::buffered"><parents><parent type="stream"/></parents><description>A stream that buffers reads and writes from another stream.
</description><examples/></type><type name="stream::fd"><parents><parent type="stream"/></parents><description>A file-descriptor based stream.
</description><examples/></type><type name="stream::parser"><parents><parent type="function"/><parent type="sequence"/></parents><description/><examples/></type><type name="stream::seek"><parents><parent type="enum"/></parents><description>* <mini>::Set</mini>
* <mini>::Cur</mini>
* <mini>::End</mini>
</description><examples/></type><type name="stream"><parents/><description>Base type of readable and writable byte streams.
</description><examples/></type><constructor category="stream" name="stream::buffered" variadic="false"><return type="stream::buffered"/><parameters><parameter name="Stream" type="stream"/><parameter name="Size" type="integer"/></parameters><description>Returns a new stream that buffers reads and writes from <mini>Stream</mini>.
</description><examples/></constructor></category><category name="socket"><method category="socket" name=":accept" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::local"/></parameters><description/><examples/></method><method category="socket" name=":accept" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::inet"/></parameters><description/><examples/></method><method category="socket" name=":bind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::local"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="socket" name=":bind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::inet"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="socket" name=":bind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::inet"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="integer"/></parameters><description/><examples/></method><method category="socket" name=":connect" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::inet"/><parameter name="Arg₂" type="string"/><parameter name="Arg₃" type="integer"/></parameters><description/><examples/></method><method category="socket" name=":connect" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket::local"/><parameter name="Arg₂" type="string"/></parameters><description/><examples/></method><method category="socket" name=":listen" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="socket"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><type name="socket::inet"><parents><parent type="socket"/></parents><description/><examples/></type><type name="socket::local"><parents><parent type="socket"/></parents><description/><examples/></type><type name="socket"><parents><parent type="stream::fd"/></parents><description/><examples/></type><type name="socket::type"><parents><parent type="enum"/></parents><description>* <mini>::Stream</mini>
* <mini>::DGram</mini>
* <mini>::Raw</mini>
</description><examples/></type><function name="mlsocketinet"><return/><parameters><parameter name="Arg₁" type="socket::type"/></parameters><description/><examples/></function><function name="mlsocketlocal"><return/><parameters><parameter name="Arg₁" type="socket::type"/></parameters><description/><examples/></function></category><category name="slice"><method category="slice" name="!=" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name="+" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":afind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="function"/></parameters><description/><examples/></method><method category="slice" name=":afind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="function"/><parameter name="Arg₄" type="function"/></parameters><description/><examples/></method><method category="slice" name=":afinder" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":append" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="string::buffer"/><parameter name="Arg₂" type="slice"/><parameter name="Arg₃" type="string"/></parameters><description/><examples/></method><method category="slice" name=":bfind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><method category="slice" name=":bfind" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="function"/></parameters><description/><examples/></method><method category="slice" name=":capacity" variadic="false"><return type="integer"/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the capacity of <mini>Slice</mini>
</description><examples><code>slice([1, 2, 3]):capacity</code><result>3</result></examples></method><method category="slice" name=":const" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":copy" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":count" variadic="false"><return type="integer"/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the length of <mini>Slice</mini>
</description><examples><code>slice([1, 2, 3]):count</code><result>3</result></examples></method><method category="slice" name=":cycle" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":delete" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="slice" name=":empty" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":filter" variadic="false"><return type="slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Filter" type="function"/></parameters><description>Removes every <mini>Value</mini> from <mini>Slice</mini> for which <mini>Function(Value)</mini> returns <mini>nil</mini> and returns those values in a new list.
</description><examples><code>let L := slice([1, 2, 3, 4, 5, 6])
L:filter(2 | _)</code><result>[1, 3, 5]</result><code>L</code><result>[2, 4, 6]</result></examples></method><method category="slice" name=":find" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><method category="slice" name=":find" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="function"/></parameters><description/><examples/></method><method category="slice" name=":first" variadic="false"><return type=""/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the first value in <mini>Slice</mini> or <mini>nil</mini> if <mini>Slice</mini> is empty.
</description><examples/></method><method category="slice" name=":first2" variadic="false"><return type=""/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the first index and value in <mini>Slice</mini> or <mini>nil</mini> if <mini>Slice</mini> is empty.
</description><examples/></method><method category="slice" name=":grow" variadic="true"><return type="slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Sequence" type="sequence"/></parameters><description>Pushes of all of the values produced by <mini>Sequence</mini> onto <mini>List</mini> and returns <mini>List</mini>.
</description><examples><code>let L := slice([1, 2, 3])
L:grow(4 .. 6)</code><result>[1, 2, 3, 4, 5, 6]</result></examples></method><method category="slice" name=":insert" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="any"/></parameters><description/><examples/></method><method category="slice" name=":last" variadic="false"><return type=""/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the last value in <mini>Slice</mini> or <mini>nil</mini> if <mini>Slice</mini> is empty.
</description><examples/></method><method category="slice" name=":last2" variadic="false"><return type=""/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the last index and value in <mini>Slice</mini> or <mini>nil</mini> if <mini>Slice</mini> is empty.
</description><examples/></method><method category="slice" name=":length" variadic="false"><return type="integer"/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the length of <mini>Slice</mini>
</description><examples><code>slice([1, 2, 3]):length</code><result>3</result></examples></method><method category="slice" name=":offset" variadic="false"><return type="integer"/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the offset of <mini>Slice</mini>
</description><examples><code>slice([1, 2, 3]):offset</code><result>0</result></examples></method><method category="slice" name=":permutations" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":permute" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":pop" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":pop" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="slice" name=":precount" variadic="false"><return type="integer"/><parameters><parameter name="Slice" type="slice"/></parameters><description>Returns the length of <mini>Slice</mini>
</description><examples><code>slice([1, 2, 3]):precount</code><result>3</result></examples></method><method category="slice" name=":pull" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":pull" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="slice" name=":push" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":put" variadic="true"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":random" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":remove" variadic="false"><return type="slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Filter" type="function"/></parameters><description>Removes every <mini>Value</mini> from <mini>Slice</mini> for which <mini>Function(Value)</mini> returns non-<mini>nil</mini> and returns those values in a new list.
</description><examples><code>let L := slice([1, 2, 3, 4, 5, 6])
L:remove(2 | _)</code><result>[2, 4, 6]</result><code>L</code><result>[1, 3, 5]</result></examples></method><method category="slice" name=":reverse" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":shuffle" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":sort" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/></parameters><description/><examples/></method><method category="slice" name=":sort" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="function"/></parameters><description/><examples/></method><method category="slice" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="integer"/></parameters><description/><examples/></method><method category="slice" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="integer"/><parameter name="Arg₄" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice::mutable"/><parameter name="Arg₂" type="integer"/><parameter name="Arg₃" type="slice::mutable"/></parameters><description/><examples/></method><method category="slice" name=":visit" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="visitor"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name="<" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name="<=" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name="=" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name=">" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><method category="slice" name=">=" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="slice"/><parameter name="Arg₂" type="slice"/></parameters><description/><examples/></method><type name="slice::index"><parents/><description>An assignable reference to an index of a slice.
</description><examples/></type><type name="slice::iter"><parents/><description/><examples/></type><type name="slice::mutable::iter"><parents><parent type="slice::iter"/></parents><description/><examples/></type><type name="slice::mutable"><parents><parent type="slice"/></parents><description/><examples/></type><type name="slice::slice"><parents/><description>A sub-slice.
</description><examples/></type><type name="slice"><parents><parent type="sequence"/></parents><description>A slice of elements.
</description><examples/></type><method category="slice" name="[]" variadic="false"><return type="slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Indices" type="integer"/><parameter name="Arg₃" type="integer"/></parameters><description>Returns a slice containing the <mini>List[Indices[1]]</mini>, <mini>List[Indices[2]]</mini>, etc.
</description><examples/></method><method category="slice" name="[]" variadic="false"><return type="slice::index|nil"/><parameters><parameter name="Slice" type="slice"/><parameter name="Index" type="integer"/></parameters><description>Returns the <mini>Index</mini>-th node in <mini>Slice</mini> or <mini>nil</mini> if <mini>Index</mini> is outside the interval of <mini>List</mini>.
Indexing starts at <mini>1</mini>. Negative indices are counted from the end of the list, with <mini>-1</mini> returning the last node.
</description><examples><code>let L := slice(["a", "b", "c", "d", "e", "f"])
L[3]</code><result>"c"</result><code>L[-2]</code><result>"e"</result><code>L[8]</code><result>nil</result></examples></method><method category="slice" name="[]" variadic="false"><return type="slice::slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Interval" type="integer::range"/></parameters><description>Returns a slice of <mini>Slice</mini> starting at <mini>Interval:start</mini> and ending at <mini>Interval:limit</mini>, both inclusive.
Indexing starts at <mini>1</mini>. Negative indices are counted from the end of the slice, with <mini>-1</mini> returning the last node.
</description><examples/></method><method category="slice" name="[]" variadic="false"><return type="slice::slice"/><parameters><parameter name="Slice" type="slice::mutable"/><parameter name="Interval" type="integer::interval"/></parameters><description>Returns a slice of <mini>Slice</mini> starting at <mini>Interval:start</mini> and ending at <mini>Interval:limit</mini>, both inclusive.
Indexing starts at <mini>1</mini>. Negative indices are counted from the end of the slice, with <mini>-1</mini> returning the last node.
</description><examples/></method><constructor category="slice" name="slice" variadic="false"><return type="slice"/><parameters><parameter name="Tuple" type="tuple"/></parameters><description>Returns a slice containing the values in <mini>Tuple</mini>.
</description><examples><code>slice((1, 2, 3))</code><result>[1, 2, 3]</result></examples></constructor><constructor category="slice" name="slice" variadic="false"><return type="slice"/><parameters/><description>Returns an empty slice.
</description><examples><code>slice()</code><result>[]</result></examples></constructor><constructor category="slice" name="slice" variadic="true"><return type="slice"/><parameters><parameter name="Sequence" type="sequence"/></parameters><description>Returns a list of all of the values produced by <mini>Sequence</mini>.
</description><examples><code>slice(1 .. 10)</code><result>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</result></examples></constructor></category><category name="set"><method category="set" name="*" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a new set containing the values of <mini>Set₁</mini> which are also in <mini>Set₂</mini>.
</description><examples><code>let A := set("banana")</code><result>{b, a, n}</result><code>let B := set("bread")</code><result>{b, r, e, a, d}</result><code>A * B</code><result>{b, a}</result></examples></method><method category="set" name="+" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a new set combining the values of <mini>Set₁</mini> and <mini>Set₂</mini>.
</description><examples><code>let A := set("banana")</code><result>{b, a, n}</result><code>let B := set("bread")</code><result>{b, r, e, a, d}</result><code>A + B</code><result>{b, a, n, r, e, d}</result></examples></method><method category="set" name="/" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a new set containing the values of <mini>Set₁</mini> which are not in <mini>Set₂</mini>.
</description><examples><code>let A := set("banana")</code><result>{b, a, n}</result><code>let B := set("bread")</code><result>{b, r, e, a, d}</result><code>A / B</code><result>{n}</result></examples></method><method category="set" name="/\" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a new set containing the values of <mini>Set₁</mini> which are also in <mini>Set₂</mini>.
</description><examples><code>let A := set("banana")</code><result>{b, a, n}</result><code>let B := set("bread")</code><result>{b, r, e, a, d}</result><code>A /\ B</code><result>{b, a}</result></examples></method><method category="set" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Set" type="set"/></parameters><description>Appends a representation of <mini>Set</mini> to <mini>Buffer</mini> of the form <mini>"[" + repr(V₁) + ", " + repr(V₂) + ", " + ... + repr(Vₙ) + "]"</mini>, where <mini>repr(Vᵢ)</mini> is a representation of the *i*-th element (using <mini>:append</mini>).
</description><examples><code>let B := string::buffer()
B:append(set(1 .. 4))
B:rest</code><result>"{1, 2, 3, 4}"</result></examples></method><method category="set" name=":append" variadic="false"><return type=""/><parameters><parameter name="Buffer" type="string::buffer"/><parameter name="Set" type="set"/><parameter name="Sep" type="string"/></parameters><description>Appends a representation of <mini>Set</mini> to <mini>Buffer</mini> of the form <mini>repr(V₁) + Sep + repr(V₂) + Sep + ... + repr(Vₙ)</mini>, where <mini>repr(Vᵢ)</mini> is a representation of the *i*-th element (using <mini>:append</mini>).
</description><examples><code>let B := string::buffer()
B:append(set(1 .. 4), " - ")
B:rest</code><result>"1 - 2 - 3 - 4"</result></examples></method><method category="set" name=":const" variadic="false"><return type="set"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Set" type="set"/></parameters><description>Returns a new set contains copies of the elements of <mini>Set</mini> created using <mini>Visitor</mini>.
</description><examples/></method><method category="set" name=":copy" variadic="false"><return type="set"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Set" type="set"/></parameters><description>Returns a new set contains copies of the elements of <mini>Set</mini> created using <mini>Copy</mini>.
</description><examples/></method><method category="set" name=":count" variadic="false"><return type="integer"/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the number of values in <mini>Set</mini>.
</description><examples><code>set(["A", "B", "C"]):count</code><result>3</result></examples></method><method category="set" name=":delete" variadic="false"><return type="some|nil"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Value" type="any"/></parameters><description>Removes <mini>Value</mini> from <mini>Set</mini> and returns it if found, otherwise <mini>nil</mini>.
</description><examples><code>let S := set(["A", "B", "C"])
S:delete("A")</code><result>some</result><code>S:delete("D")</code><result>nil</result><code>S</code><result>{B, C}</result></examples></method><method category="set" name=":empty" variadic="false"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/></parameters><description>Deletes all values from <mini>Set</mini> and returns it.
</description><examples><code>let S := set(["A", "B", "C"])</code><result>{A, B, C}</result><code>S:empty</code><result>{}</result></examples></method><method category="set" name=":first" variadic="false"><return type=""/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the first value in <mini>Set</mini> or <mini>nil</mini> if <mini>Set</mini> is empty.
</description><examples/></method><method category="set" name=":from" variadic="false"><return type="sequence|nil"/><parameters><parameter name="Set" type="set"/><parameter name="Value" type="any"/></parameters><description>Returns the subset of <mini>Set</mini> after <mini>Value</mini> as a sequence.
</description><examples><code>let S := set(["A", "B", "C", "D", "E"])
set(S:from("C"))</code><result>{C, D, E}</result><code>set(S:from("F"))</code><result>{}</result></examples></method><method category="set" name=":grow" variadic="true"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Sequence" type="sequence"/></parameters><description>Adds of all the values produced by <mini>Sequence</mini> to <mini>Set</mini> and returns <mini>Set</mini>.
</description><examples><code>set("cake"):grow("banana")</code><result>{c, a, k, e, b, n}</result></examples></method><method category="set" name=":in" variadic="false"><return type="any|nil"/><parameters><parameter name="Value" type="any"/><parameter name="Set" type="set"/></parameters><description>Returns <mini>Key</mini> if it is in <mini>Map</mini>, otherwise return <mini>nil</mini>.
</description><examples><code>let S := set(["A", "B", "C"])
"A" in S</code><result>"A"</result><code>"D" in S</code><result>nil</result></examples></method><method category="set" name=":insert" variadic="false"><return type="some|nil"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Value" type="any"/></parameters><description>Inserts <mini>Value</mini> into <mini>Set</mini>.
Returns the previous value associated with <mini>Key</mini> if any, otherwise <mini>nil</mini>.
</description><examples><code>let S := set(["A", "B", "C"])
S:insert("A")</code><result>some</result><code>S:insert("D")</code><result>nil</result><code>S</code><result>{A, B, C, D}</result></examples></method><method category="set" name=":last" variadic="false"><return type=""/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the last value in <mini>Set</mini> or <mini>nil</mini> if <mini>Set</mini> is empty.
</description><examples/></method><method category="set" name=":missing" variadic="false"><return type="some|nil"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Value" type="any"/></parameters><description>If <mini>Value</mini> is present in <mini>Set</mini> then returns <mini>nil</mini>. Otherwise inserts <mini>Value</mini> into <mini>Set</mini> and returns <mini>some</mini>.
</description><examples><code>let S := set(["A", "B", "C"])
S:missing("A")</code><result>nil</result><code>S:missing("D")</code><result>some</result><code>S</code><result>{A, B, C, D}</result></examples></method><method category="set" name=":order" variadic="false"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Order" type="set::order"/></parameters><description>Sets the ordering
</description><examples/></method><method category="set" name=":order" variadic="false"><return type="set::order"/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the current ordering of <mini>Set</mini>.
</description><examples/></method><method category="set" name=":pop" variadic="false"><return type="any|nil"/><parameters><parameter name="Set" type="set::mutable"/></parameters><description>Deletes the first value from <mini>Set</mini> according to its iteration order. Returns the deleted value, or <mini>nil</mini> if <mini>Set</mini> is empty.
</description><examples><code>:> Insertion order (default)
let S1 := set("cake")</code><result>{c, a, k, e}</result><code>S1:pop</code><result>"c"</result><code>S1</code><result>{a, k, e}</result><code>
:> LRU order
let S2 := set("cake"):order(set::order::LRU)</code><result>{c, a, k, e}</result><code>S2["a"]; S2["e"]; S2["c"]; S2["k"]
S2:pop</code><result>"a"</result><code>S2</code><result>{e, c, k}</result><code>
:> MRU order
let S3 := set("cake"):order(set::order::MRU)</code><result>{c, a, k, e}</result><code>S3["a"]; S3["e"]; S3["c"]; S3["k"]
S3:pop</code><result>"k"</result><code>S3</code><result>{c, e, a}</result></examples></method><method category="set" name=":precount" variadic="false"><return type="integer"/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the number of values in <mini>Set</mini>.
</description><examples><code>set(["A", "B", "C"]):count</code><result>3</result></examples></method><method category="set" name=":pull" variadic="false"><return type="any|nil"/><parameters><parameter name="Set" type="set::mutable"/></parameters><description>Deletes the last value from <mini>Set</mini> according to its iteration order. Returns the deleted value, or <mini>nil</mini> if <mini>Set</mini> is empty.
</description><examples><code>:> Insertion order (default)
let S1 := set("cake")</code><result>{c, a, k, e}</result><code>S1:pull</code><result>"e"</result><code>S1</code><result>{c, a, k}</result><code>
:> LRU order
let S2 := set("cake"):order(set::order::LRU)</code><result>{c, a, k, e}</result><code>S2["a"]; S2["e"]; S2["c"]; S2["k"]
S2:pull</code><result>"k"</result><code>S2</code><result>{a, e, c}</result><code>
:> MRU order
let S3 := set("cake"):order(set::order::MRU)</code><result>{c, a, k, e}</result><code>S3["a"]; S3["e"]; S3["c"]; S3["k"]
S3:pull</code><result>"a"</result><code>S3</code><result>{k, c, e}</result></examples></method><method category="set" name=":push" variadic="true"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Value" type="any"/></parameters><description>Inserts each <mini>Value</mini> into <mini>Set</mini> at the start.
</description><examples><code>let S := set(["A", "B", "C"])
S:push("A")</code><result>{A, B, C}</result><code>S:push("D")</code><result>{D, A, B, C}</result><code>S:push("E", "B")</code><result>{B, E, D, A, C}</result><code>S</code><result>{B, E, D, A, C}</result></examples></method><method category="set" name=":put" variadic="true"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Value" type="any"/></parameters><description>Inserts each <mini>Value</mini> into <mini>Set</mini> at the end.
</description><examples><code>let S := set(["A", "B", "C"])
S:put("A")</code><result>{B, C, A}</result><code>S:put("D")</code><result>{B, C, A, D}</result><code>S:put("E", "B")</code><result>{C, A, D, E, B}</result><code>S</code><result>{C, A, D, E, B}</result></examples></method><method category="set" name=":random" variadic="false"><return type="any"/><parameters><parameter name="List" type="set"/></parameters><description>Returns a random (assignable) node from <mini>Set</mini>.
</description><examples><code>let S := set("cake")</code><result>{c, a, k, e}</result><code>S:random</code><result>"c"</result><code>S:random</code><result>"k"</result></examples></method><method category="set" name=":reverse" variadic="false"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/></parameters><description>Reverses the iteration order of <mini>Set</mini> in-place and returns it.
</description><examples><code>let S := set("cake")</code><result>{c, a, k, e}</result><code>S:reverse</code><result>{e, k, a, c}</result></examples></method><method category="set" name=":size" variadic="false"><return type="integer"/><parameters><parameter name="Set" type="set"/></parameters><description>Returns the number of values in <mini>Set</mini>.
</description><examples><code>set(["A", "B", "C"]):size</code><result>3</result></examples></method><method category="set" name=":sort" variadic="false"><return type="Set"/><parameters><parameter name="Set" type="set::mutable"/></parameters><description>Sorts the values (changes the iteration order) of <mini>Set</mini> using <mini>Valueᵢ < Valueⱼ</mini> and returns <mini>Set</mini>.
</description><examples><code>let S := set("cake")</code><result>{c, a, k, e}</result><code>S:sort</code><result>{a, c, e, k}</result></examples></method><method category="set" name=":sort" variadic="false"><return type="Set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Cmp" type="function"/></parameters><description>Sorts the values (changes the iteration order) of <mini>Set</mini> using <mini>Cmp(Valueᵢ, Valueⱼ)</mini> and returns <mini>Set</mini>
</description><examples><code>let S := set("cake")</code><result>{c, a, k, e}</result><code>S:sort(>)</code><result>{k, e, c, a}</result></examples></method><method category="set" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set::mutable"/><parameter name="Arg₂" type="any"/></parameters><description/><examples/></method><method category="set" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set::mutable"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="integer"/><parameter name="Arg₄" type="set::mutable"/></parameters><description/><examples/></method><method category="set" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set::mutable"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="integer"/></parameters><description/><examples/></method><method category="set" name=":splice" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set::mutable"/><parameter name="Arg₂" type="any"/><parameter name="Arg₃" type="set::mutable"/></parameters><description/><examples/></method><method category="set" name=":subsets" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set"/></parameters><description/><examples/></method><method category="set" name=":subsets" variadic="false"><return type=""/><parameters><parameter name="Arg₁" type="set"/><parameter name="Arg₂" type="integer"/></parameters><description/><examples/></method><method category="set" name=":take" variadic="false"><return type="set"/><parameters><parameter name="Set" type="set::mutable"/><parameter name="Source" type="set::mutable"/></parameters><description>Inserts the values from <mini>Source</mini> into <mini>Set</mini>, leaving <mini>Source</mini> empty.
</description><examples><code>let A := set("cat")</code><result>{c, a, t}</result><code>let B := set("cake")</code><result>{c, a, k, e}</result><code>A:take(B)</code><result>{c, a, t, k, e}</result><code>A</code><result>{c, a, t, k, e}</result><code>B</code><result>{}</result></examples></method><method category="set" name=":visit" variadic="false"><return type="set"/><parameters><parameter name="Visitor" type="visitor"/><parameter name="Set" type="set"/></parameters><description>Returns a new set contains copies of the elements of <mini>Set</mini> created using <mini>Copy</mini>.
</description><examples/></method><method category="set" name="<" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a <mini>Set₂</mini> if <mini>Set₁</mini> is a strict subset of <mini>Set₂</mini>, otherwise returns <mini>nil</mini>.
</description><examples><code>let A := set("bandana")</code><result>{b, a, n, d}</result><code>let B := set("ban")</code><result>{b, a, n}</result><code>let C := set("bread")</code><result>{b, r, e, a, d}</result><code>let D := set("bandana")</code><result>{b, a, n, d}</result><code>B < A</code><result>{b, a, n, d}</result><code>C < A</code><result>nil</result><code>D < A</code><result>nil</result></examples></method><method category="set" name="<=" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a <mini>Set₂</mini> if <mini>Set₁</mini> is a subset of <mini>Set₂</mini>, otherwise returns <mini>nil</mini>.
</description><examples><code>let A := set("bandana")</code><result>{b, a, n, d}</result><code>let B := set("ban")</code><result>{b, a, n}</result><code>let C := set("bread")</code><result>{b, r, e, a, d}</result><code>let D := set("bandana")</code><result>{b, a, n, d}</result><code>B <= A</code><result>{b, a, n, d}</result><code>C <= A</code><result>nil</result><code>D <= A</code><result>{b, a, n, d}</result></examples></method><method category="set" name="<=>" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a tuple of <mini>(Set₁ / Set₂, Set₁ * Set₂, Set₂ / Set₁)</mini>.
</description><examples><code>let A := set("banana")</code><result>{b, a, n}</result><code>let B := set("bread")</code><result>{b, r, e, a, d}</result><code>A <=> B</code><result>({n}, {b, a}, {r, e, d})</result></examples></method><method category="set" name=">" variadic="false"><return type="set"/><parameters><parameter name="Set₁" type="set"/><parameter name="Set₂" type="set"/></parameters><description>Returns a <mini>Set₂</mini> if <mini>Set₁</mini> is a strict superset of <mini>Set₂</mini>, otherwise returns <mini>nil</mini>.