Repository navigation
Expand file tree
/
Copy pathapi.html
More file actions
495 lines (491 loc) · 71.6 KB
/
Copy pathapi.html
File metadata and controls
495 lines (491 loc) · 71.6 KB
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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The generated Eliscript standard-library module and export index.">
<meta name="theme-color" content="#f2f0e8">
<title>Library API · Eliscript</title>
<link rel="icon" type="image/png" href="assets/favicon.png">
<link rel="apple-touch-icon" href="assets/eliscript-logo.png">
<link rel="stylesheet" href="assets/site.css">
<!-- The page's behaviours are Eliscript: this loader compiles the source
it names and runs the result. Nothing here is handwritten JavaScript. -->
<script defer src="assets/eliscript-loader.js"
data-eliscript="site.eli"></script>
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<nav class="nav-shell" aria-label="Primary navigation">
<a class="brand" href="../index.html"><img class="brand-mark" src="assets/eliscript-logo.png" alt=""><span>Eliscript</span></a>
<div class="nav-links">
<a href="getting-started.html">Start</a>
<a href="language.html">Language</a>
<a href="api.html" aria-current="page">API</a>
<a class="nav-optional" href="specifications.html">Specs</a>
<a class="nav-optional" href="roadmap.html">Roadmap</a>
<a class="nav-optional" href="playground.html">Playground</a>
<a href="https://github.com/liuchong/eliscript">GitHub</a>
</div>
</nav>
</header>
<main id="main">
<header class="doc-hero">
<div class="doc-hero-inner">
<p class="eyebrow">Library API</p>
<h1>One exact index for every library export.</h1>
<p class="doc-lede">46 modules and 598 exports, generated from reviewed module metadata and the checked public surface.</p>
</div>
</header>
<div class="doc-shell">
<nav class="doc-nav" aria-label="On this page">
<p class="doc-nav-title">Library groups</p>
<a href="#portable">Portable libraries</a>
<a href="#runtime-core">Runtime core</a>
<a href="#host-interop">Host interoperation</a>
<a href="#state">State</a>
<a href="api-index.json">Machine-readable index</a>
</nav>
<article class="doc-content">
<div class="api-toolbar">
<input class="api-search" type="search" data-api-search aria-label="Search modules and exports" placeholder="Search modules and exports">
<p class="api-search-count" aria-live="polite" data-api-count>46 modules</p>
</div>
<section id="portable" data-api-section>
<h2>Portable libraries</h2>
<p>19 modules, 215 exports.</p>
<article class="api-module" data-api-module data-api-searchable="bit portable 32-bit population count and bit rotation operations. portable bit-count rotate-left rotate-right">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/bit.eli</p><h3>bit</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable 32-bit population count and bit rotation operations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/bit.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0052-portable-32-bit-operations.md" data-spec-link="0052">Specification 0052</a></p>
<ul class="api-export-list" aria-label="bit exports"><li><code>bit-count</code></li><li><code>rotate-left</code></li><li><code>rotate-right</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="data portable grouping, indexing, and counting for ordinary sequences. portable count-by group-by index-by">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/data.eli</p><h3>data</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable grouping, indexing, and counting for ordinary sequences.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/data.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0027-portable-data-indexing.md" data-spec-link="0027">Specification 0027</a></p>
<ul class="api-export-list" aria-label="data exports"><li><code>count-by</code></li><li><code>group-by</code></li><li><code>index-by</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="data-text portable result-based reading and printing of canonical data text. portable data-text-result-value print-value read-value read-values">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/data-text.eli</p><h3>data-text</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable Result-based reading and printing of canonical data text.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/data-text.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0071-canonical-portable-data-text.md" data-spec-link="0071">Specification 0071</a></p>
<ul class="api-export-list" aria-label="data-text exports"><li><code>data-text-result-value</code></li><li><code>print-value</code></li><li><code>read-value</code></li><li><code>read-values</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="function portable function composition, predicate combination, nil normalization, and trampoline execution. portable comp complement constantly every-pred fnil identity juxt partial some-fn trampoline">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/function.eli</p><h3>function</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable function composition, predicate combination, nil normalization, and trampoline execution.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/function.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0149-portable-functional-combinators.md" data-spec-link="0149">Specification 0149</a></p>
<ul class="api-export-list" aria-label="function exports"><li><code>comp</code></li><li><code>complement</code></li><li><code>constantly</code></li><li><code>every-pred</code></li><li><code>fnil</code></li><li><code>identity</code></li><li><code>juxt</code></li><li><code>partial</code></li><li><code>some-fn</code></li><li><code>trampoline</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="hierarchy authenticated immutable derivation hierarchies with transitive and vector relation queries. portable ancestors derive descendants empty-hierarchy hierarchy? is-a? parents underive">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/hierarchy.eli</p><h3>hierarchy</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Authenticated immutable derivation hierarchies with transitive and vector relation queries.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/hierarchy.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0157-persistent-dispatch-hierarchies.md" data-spec-link="0157">Specification 0157</a></p>
<ul class="api-export-list" aria-label="hierarchy exports"><li><code>ancestors</code></li><li><code>derive</code></li><li><code>descendants</code></li><li><code>empty-hierarchy</code></li><li><code>hierarchy?</code></li><li><code>is-a?</code></li><li><code>parents</code></li><li><code>underive</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="identifier portable keyword and symbol construction, classification, and naming. portable identifier-name identifier-namespace identifier? keyword keyword? portable-keyword? portable-symbol? qualified-name symbol symbol?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/identifier.eli</p><h3>identifier</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable keyword and symbol construction, classification, and naming.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/identifier.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0070-portable-identifier-values.md" data-spec-link="0070">Specification 0070</a></p>
<ul class="api-export-list" aria-label="identifier exports"><li><code>identifier-name</code></li><li><code>identifier-namespace</code></li><li><code>identifier?</code></li><li><code>keyword</code></li><li><code>keyword?</code></li><li><code>portable-keyword?</code></li><li><code>portable-symbol?</code></li><li><code>qualified-name</code></li><li><code>symbol</code></li><li><code>symbol?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="json strict bounded json parsing and deterministic persistent-value encoding. portable json-error-code json-error-message json-error-offset json-error-path json-error? parse-json stringify-json">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/json.eli</p><h3>json</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Strict bounded JSON parsing and deterministic persistent-value encoding.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/json.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0076-portable-json-values.md" data-spec-link="0076">Specification 0076</a></p>
<ul class="api-export-list" aria-label="json exports"><li><code>json-error-code</code></li><li><code>json-error-message</code></li><li><code>json-error-offset</code></li><li><code>json-error-path</code></li><li><code>json-error?</code></li><li><code>parse-json</code></li><li><code>stringify-json</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="metadata portable immutable metadata access, validation, and transformation. portable meta metadata-valid? supports-metadata? vary-meta with-meta">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/metadata.eli</p><h3>metadata</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable immutable metadata access, validation, and transformation.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/metadata.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0068-immutable-metadata-semantics.md" data-spec-link="0068">Specification 0068</a></p>
<ul class="api-export-list" aria-label="metadata exports"><li><code>meta</code></li><li><code>metadata-valid?</code></li><li><code>supports-metadata?</code></li><li><code>vary-meta</code></li><li><code>with-meta</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="multimethod callable multimethods with exact and hierarchical dispatch, transitive preferences, ambiguity detection, and persistent snapshots. portable add-method! default-dispatch-value derive! dispatch-fn dispatch-value get-method has-method? methods multi-fn multi-fn-hierarchy multi-fn-name multi-fn? prefer-method! preferences preferred-method? remove-all-methods! remove-all-preferences! remove-method! remove-preference! set-hierarchy! underive!">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/multimethod.eli</p><h3>multimethod</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Callable multimethods with exact and hierarchical dispatch, transitive preferences, ambiguity detection, and persistent snapshots.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/multimethod.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0157-persistent-dispatch-hierarchies.md" data-spec-link="0157">Specification 0157</a></p>
<ul class="api-export-list" aria-label="multimethod exports"><li><code>add-method!</code></li><li><code>default-dispatch-value</code></li><li><code>derive!</code></li><li><code>dispatch-fn</code></li><li><code>dispatch-value</code></li><li><code>get-method</code></li><li><code>has-method?</code></li><li><code>methods</code></li><li><code>multi-fn</code></li><li><code>multi-fn-hierarchy</code></li><li><code>multi-fn-name</code></li><li><code>multi-fn?</code></li><li><code>prefer-method!</code></li><li><code>preferences</code></li><li><code>preferred-method?</code></li><li><code>remove-all-methods!</code></li><li><code>remove-all-preferences!</code></li><li><code>remove-method!</code></li><li><code>remove-preference!</code></li><li><code>set-hierarchy!</code></li><li><code>underive!</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="numeric exact number classification and checked safe-integer arithmetic. portable abs checked-add checked-multiply checked-subtract clamp compare-number even? finite? gcd infinite? integer? lcm max-number min-number modulo nan? negative? number? odd? positive? quot rem safe-integer? sign zero?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/numeric.eli</p><h3>numeric</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Exact Number classification and checked safe-integer arithmetic.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/numeric.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0077-portable-numeric-foundation.md" data-spec-link="0077">Specification 0077</a></p>
<ul class="api-export-list" aria-label="numeric exports"><li><code>abs</code></li><li><code>checked-add</code></li><li><code>checked-multiply</code></li><li><code>checked-subtract</code></li><li><code>clamp</code></li><li><code>compare-number</code></li><li><code>even?</code></li><li><code>finite?</code></li><li><code>gcd</code></li><li><code>infinite?</code></li><li><code>integer?</code></li><li><code>lcm</code></li><li><code>max-number</code></li><li><code>min-number</code></li><li><code>modulo</code></li><li><code>nan?</code></li><li><code>negative?</code></li><li><code>number?</code></li><li><code>odd?</code></li><li><code>positive?</code></li><li><code>quot</code></li><li><code>rem</code></li><li><code>safe-integer?</code></li><li><code>sign</code></li><li><code>zero?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="object portable immutable operations for string-keyed host objects. portable assoc dissoc filter-values has? key-in? keys map-values merge omit pick update">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/object.eli</p><h3>object</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable immutable operations for string-keyed host objects.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/object.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0026-portable-object-library.md" data-spec-link="0026">Specification 0026</a></p>
<ul class="api-export-list" aria-label="object exports"><li><code>assoc</code></li><li><code>dissoc</code></li><li><code>filter-values</code></li><li><code>has?</code></li><li><code>key-in?</code></li><li><code>keys</code></li><li><code>map-values</code></li><li><code>merge</code></li><li><code>omit</code></li><li><code>pick</code></li><li><code>update</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="persistent-list persistent linked lists with structural sharing and immutable metadata. portable empty-persistent-list persistent-list-conj persistent-list-cons persistent-list-count persistent-list-empty? persistent-list-first persistent-list-from-array persistent-list-meta persistent-list-nth persistent-list-peek persistent-list-pop persistent-list-reduce persistent-list-rest persistent-list-reverse persistent-list-to-array persistent-list-with-meta persistent-list?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/persistent-list.eli</p><h3>persistent-list</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent linked lists with structural sharing and immutable metadata.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/persistent-list.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0054-eliscript-persistent-list.md" data-spec-link="0054">Specification 0054</a></p>
<ul class="api-export-list" aria-label="persistent-list exports"><li><code>empty-persistent-list</code></li><li><code>persistent-list-conj</code></li><li><code>persistent-list-cons</code></li><li><code>persistent-list-count</code></li><li><code>persistent-list-empty?</code></li><li><code>persistent-list-first</code></li><li><code>persistent-list-from-array</code></li><li><code>persistent-list-meta</code></li><li><code>persistent-list-nth</code></li><li><code>persistent-list-peek</code></li><li><code>persistent-list-pop</code></li><li><code>persistent-list-reduce</code></li><li><code>persistent-list-rest</code></li><li><code>persistent-list-reverse</code></li><li><code>persistent-list-to-array</code></li><li><code>persistent-list-with-meta</code></li><li><code>persistent-list?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="persistent-map persistent hamt maps with value semantics and collision handling. portable empty-persistent-map persistent-map-assoc persistent-map-count persistent-map-dissoc persistent-map-from-entries persistent-map-get persistent-map-has? persistent-map-meta persistent-map-reduce persistent-map-to-entries persistent-map-with-meta persistent-map?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/persistent-map.eli</p><h3>persistent-map</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent HAMT maps with value semantics and collision handling.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/persistent-map.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0055-eliscript-persistent-map.md" data-spec-link="0055">Specification 0055</a></p>
<ul class="api-export-list" aria-label="persistent-map exports"><li><code>empty-persistent-map</code></li><li><code>persistent-map-assoc</code></li><li><code>persistent-map-count</code></li><li><code>persistent-map-dissoc</code></li><li><code>persistent-map-from-entries</code></li><li><code>persistent-map-get</code></li><li><code>persistent-map-has?</code></li><li><code>persistent-map-meta</code></li><li><code>persistent-map-reduce</code></li><li><code>persistent-map-to-entries</code></li><li><code>persistent-map-with-meta</code></li><li><code>persistent-map?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="persistent-set persistent map-backed sets and immutable set algebra. portable empty-persistent-set persistent-set-compatible? persistent-set-conj persistent-set-count persistent-set-difference persistent-set-disj persistent-set-disjoint? persistent-set-empty? persistent-set-equal? persistent-set-from-array persistent-set-has? persistent-set-intersection persistent-set-meta persistent-set-reduce persistent-set-subset? persistent-set-superset? persistent-set-to-array persistent-set-union persistent-set-with-meta persistent-set?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/persistent-set.eli</p><h3>persistent-set</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent map-backed sets and immutable set algebra.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/persistent-set.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0056-eliscript-persistent-set.md" data-spec-link="0056">Specification 0056</a></p>
<ul class="api-export-list" aria-label="persistent-set exports"><li><code>empty-persistent-set</code></li><li><code>persistent-set-compatible?</code></li><li><code>persistent-set-conj</code></li><li><code>persistent-set-count</code></li><li><code>persistent-set-difference</code></li><li><code>persistent-set-disj</code></li><li><code>persistent-set-disjoint?</code></li><li><code>persistent-set-empty?</code></li><li><code>persistent-set-equal?</code></li><li><code>persistent-set-from-array</code></li><li><code>persistent-set-has?</code></li><li><code>persistent-set-intersection</code></li><li><code>persistent-set-meta</code></li><li><code>persistent-set-reduce</code></li><li><code>persistent-set-subset?</code></li><li><code>persistent-set-superset?</code></li><li><code>persistent-set-to-array</code></li><li><code>persistent-set-union</code></li><li><code>persistent-set-with-meta</code></li><li><code>persistent-set?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="persistent-vector persistent 32-way vectors with tail optimization and structural sharing. portable empty-persistent-vector persistent-vector-assoc persistent-vector-conj persistent-vector-count persistent-vector-from-array persistent-vector-meta persistent-vector-nth persistent-vector-peek persistent-vector-pop persistent-vector-reduce persistent-vector-to-array persistent-vector-with-meta persistent-vector?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/persistent-vector.eli</p><h3>persistent-vector</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent 32-way vectors with tail optimization and structural sharing.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/persistent-vector.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0053-eliscript-persistent-vector.md" data-spec-link="0053">Specification 0053</a></p>
<ul class="api-export-list" aria-label="persistent-vector exports"><li><code>empty-persistent-vector</code></li><li><code>persistent-vector-assoc</code></li><li><code>persistent-vector-conj</code></li><li><code>persistent-vector-count</code></li><li><code>persistent-vector-from-array</code></li><li><code>persistent-vector-meta</code></li><li><code>persistent-vector-nth</code></li><li><code>persistent-vector-peek</code></li><li><code>persistent-vector-pop</code></li><li><code>persistent-vector-reduce</code></li><li><code>persistent-vector-to-array</code></li><li><code>persistent-vector-with-meta</code></li><li><code>persistent-vector?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="result inspectable ok and err values with composable branch operations. portable and-then collect-results err err? fold map-err map-ok ok ok? or-else result-payload result? traverse-results unwrap-or unwrap-or-else">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/result.eli</p><h3>result</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Inspectable Ok and Err values with composable branch operations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/result.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0075-portable-result-values.md" data-spec-link="0075">Specification 0075</a></p>
<ul class="api-export-list" aria-label="result exports"><li><code>and-then</code></li><li><code>collect-results</code></li><li><code>err</code></li><li><code>err?</code></li><li><code>fold</code></li><li><code>map-err</code></li><li><code>map-ok</code></li><li><code>ok</code></li><li><code>ok?</code></li><li><code>or-else</code></li><li><code>result-payload</code></li><li><code>result?</code></li><li><code>traverse-results</code></li><li><code>unwrap-or</code></li><li><code>unwrap-or-else</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="sequence portable sequence traversal, transformation, search, and range generation. portable concat drop every? filter find map range range-by reduce reverse some? take">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/sequence.eli</p><h3>sequence</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable sequence traversal, transformation, search, and range generation.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/sequence.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0023-portable-sequence-library.md" data-spec-link="0023">Specification 0023</a></p>
<ul class="api-export-list" aria-label="sequence exports"><li><code>concat</code></li><li><code>drop</code></li><li><code>every?</code></li><li><code>filter</code></li><li><code>find</code></li><li><code>map</code></li><li><code>range</code></li><li><code>range-by</code></li><li><code>reduce</code></li><li><code>reverse</code></li><li><code>some?</code></li><li><code>take</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="text portable text predicates, slicing, joining, trimming, and repetition. portable blank? contains? empty? ends-with? join repeat slice starts-at? starts-with? strip-prefix strip-suffix trim whitespace?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/text.eli</p><h3>text</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable text predicates, slicing, joining, trimming, and repetition.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/text.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0025-portable-text-library.md" data-spec-link="0025">Specification 0025</a></p>
<ul class="api-export-list" aria-label="text exports"><li><code>blank?</code></li><li><code>contains?</code></li><li><code>empty?</code></li><li><code>ends-with?</code></li><li><code>join</code></li><li><code>repeat</code></li><li><code>slice</code></li><li><code>starts-at?</code></li><li><code>starts-with?</code></li><li><code>strip-prefix</code></li><li><code>strip-suffix</code></li><li><code>trim</code></li><li><code>whitespace?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="value deterministic value equality, hashing, maps, and sets. portable empty-value-map empty-value-set value-equal? value-hash value-map-from-entries value-set-from-array">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/value.eli</p><h3>value</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Deterministic value equality, hashing, maps, and sets.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/value.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0057-portable-value-semantics.md" data-spec-link="0057">Specification 0057</a></p>
<ul class="api-export-list" aria-label="value exports"><li><code>empty-value-map</code></li><li><code>empty-value-set</code></li><li><code>value-equal?</code></li><li><code>value-hash</code></li><li><code>value-map-from-entries</code></li><li><code>value-set-from-array</code></li></ul>
</article>
</section>
<section id="runtime-core" data-api-section>
<h2>Runtime core</h2>
<p>21 modules, 345 exports.</p>
<article class="api-module" data-api-module data-api-searchable="core-collection protocol-driven capability inspection, persistent collection classification, bounded counting, value distinctness, o(1) subvector views, construction, lookup, reduction, removal, stack access, and reversible replayable views. runtime-core iassociative iconj icounted iemptyable iindexed ikvreduce ilookup imap ireduce ireversible iseqable iset istack reductionview sequenceview assoc associative? bounded-count collection-count collection-nth collection-seq collection? conj contains? counted? disj dissoc distinct? empty empty? indexed? list? lookup map? not-empty peek pop queue? reduce reduce-kv reduced reduced? reducible? reduction-view reduction-view? reversible? rseq seqable? sequence-view sequence? sequential? set? subvec unbounded-sequence-view unreduced vector?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/collection.eli</p><h3>core-collection</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Protocol-driven capability inspection, persistent collection classification, bounded counting, value distinctness, O(1) subvector views, construction, lookup, reduction, removal, stack access, and reversible replayable views.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/collection.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-collection exports"><li><code>IAssociative</code></li><li><code>IConj</code></li><li><code>ICounted</code></li><li><code>IEmptyable</code></li><li><code>IIndexed</code></li><li><code>IKVReduce</code></li><li><code>ILookup</code></li><li><code>IMap</code></li><li><code>IReduce</code></li><li><code>IReversible</code></li><li><code>ISeqable</code></li><li><code>ISet</code></li><li><code>IStack</code></li><li><code>ReductionView</code></li><li><code>SequenceView</code></li><li><code>assoc</code></li><li><code>associative?</code></li><li><code>bounded-count</code></li><li><code>collection-count</code></li><li><code>collection-nth</code></li><li><code>collection-seq</code></li><li><code>collection?</code></li><li><code>conj</code></li><li><code>contains?</code></li><li><code>counted?</code></li><li><code>disj</code></li><li><code>dissoc</code></li><li><code>distinct?</code></li><li><code>empty</code></li><li><code>empty?</code></li><li><code>indexed?</code></li><li><code>list?</code></li><li><code>lookup</code></li><li><code>map?</code></li><li><code>not-empty</code></li><li><code>peek</code></li><li><code>pop</code></li><li><code>queue?</code></li><li><code>reduce</code></li><li><code>reduce-kv</code></li><li><code>reduced</code></li><li><code>reduced?</code></li><li><code>reducible?</code></li><li><code>reduction-view</code></li><li><code>reduction-view?</code></li><li><code>reversible?</code></li><li><code>rseq</code></li><li><code>seqable?</code></li><li><code>sequence-view</code></li><li><code>sequence?</code></li><li><code>sequential?</code></li><li><code>set?</code></li><li><code>subvec</code></li><li><code>unbounded-sequence-view</code></li><li><code>unreduced</code></li><li><code>vector?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-data collection-native grouping, keyed projection and transformation, nested associative updates, merging, selection, and zipping. runtime-core assoc-in count-by frequencies get-in group-by index-by keys merge merge-with select-keys update update-in update-keys update-vals vals zipmap">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/data.eli</p><h3>core-data</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Collection-native grouping, keyed projection and transformation, nested associative updates, merging, selection, and zipping.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/data.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-data exports"><li><code>assoc-in</code></li><li><code>count-by</code></li><li><code>frequencies</code></li><li><code>get-in</code></li><li><code>group-by</code></li><li><code>index-by</code></li><li><code>keys</code></li><li><code>merge</code></li><li><code>merge-with</code></li><li><code>select-keys</code></li><li><code>update</code></li><li><code>update-in</code></li><li><code>update-keys</code></li><li><code>update-vals</code></li><li><code>vals</code></li><li><code>zipmap</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-data-text canonical readable data text for persistent values and identifiers. runtime-core datatexterror iprint print-value read-value read-values">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/data-text.eli</p><h3>core-data-text</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Canonical readable data text for persistent values and identifiers.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/data-text.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0069-canonical-runtime-data-text.md" data-spec-link="0069">Specification 0069</a></p>
<ul class="api-export-list" aria-label="core-data-text exports"><li><code>DataTextError</code></li><li><code>IPrint</code></li><li><code>print-value</code></li><li><code>read-value</code></li><li><code>read-values</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-identifier first-class keyword and symbol values with qualified names. runtime-core eliscriptsymbol keyword identifier-name identifier-namespace identifier? keyword keyword? qualified-name symbol symbol?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/identifier.eli</p><h3>core-identifier</h3></div>
<span class="status status-next">stable</span>
</header>
<p>First-class keyword and symbol values with qualified names.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/identifier.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0067-first-class-keyword-symbol-values.md" data-spec-link="0067">Specification 0067</a></p>
<ul class="api-export-list" aria-label="core-identifier exports"><li><code>EliscriptSymbol</code></li><li><code>Keyword</code></li><li><code>identifier-name</code></li><li><code>identifier-namespace</code></li><li><code>identifier?</code></li><li><code>keyword</code></li><li><code>keyword?</code></li><li><code>qualified-name</code></li><li><code>symbol</code></li><li><code>symbol?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-lazy-sequence demand-driven memoized sequences, deferred recursive tails, direct lazy transformations, and realization inspection. runtime-core lazy-cons lazy-dedupe lazy-distinct lazy-drop lazy-drop-while lazy-filter lazy-interpose lazy-keep lazy-keep-indexed lazy-map lazy-map-indexed lazy-mapcat lazy-partition-all lazy-partition-by lazy-remove lazy-seq lazy-seq? lazy-take lazy-take-nth lazy-take-while realize realized-count realized?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/lazy-sequence.eli</p><h3>core-lazy-sequence</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Demand-driven memoized sequences, deferred recursive tails, direct lazy transformations, and realization inspection.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/lazy-sequence.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0176-memoized-lazy-sequences.md" data-spec-link="0176">Specification 0176</a></p>
<ul class="api-export-list" aria-label="core-lazy-sequence exports"><li><code>lazy-cons</code></li><li><code>lazy-dedupe</code></li><li><code>lazy-distinct</code></li><li><code>lazy-drop</code></li><li><code>lazy-drop-while</code></li><li><code>lazy-filter</code></li><li><code>lazy-interpose</code></li><li><code>lazy-keep</code></li><li><code>lazy-keep-indexed</code></li><li><code>lazy-map</code></li><li><code>lazy-map-indexed</code></li><li><code>lazy-mapcat</code></li><li><code>lazy-partition-all</code></li><li><code>lazy-partition-by</code></li><li><code>lazy-remove</code></li><li><code>lazy-seq</code></li><li><code>lazy-seq?</code></li><li><code>lazy-take</code></li><li><code>lazy-take-nth</code></li><li><code>lazy-take-while</code></li><li><code>realize</code></li><li><code>realized-count</code></li><li><code>realized?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-metadata immutable metadata protocols and value-preserving updates. runtime-core imeta iwithmeta meta supports-metadata? vary-meta with-meta">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/metadata.eli</p><h3>core-metadata</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Immutable metadata protocols and value-preserving updates.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/metadata.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0068-immutable-metadata-semantics.md" data-spec-link="0068">Specification 0068</a></p>
<ul class="api-export-list" aria-label="core-metadata exports"><li><code>IMeta</code></li><li><code>IWithMeta</code></li><li><code>meta</code></li><li><code>supports-metadata?</code></li><li><code>vary-meta</code></li><li><code>with-meta</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-object protocol-driven immutable keyed-object transformations. runtime-core assoc dissoc filter-values has? key-in? keys map-values merge omit pick update">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/object.eli</p><h3>core-object</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Protocol-driven immutable keyed-object transformations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/object.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0081-protocol-driven-text-object.md" data-spec-link="0081">Specification 0081</a></p>
<ul class="api-export-list" aria-label="core-object exports"><li><code>assoc</code></li><li><code>dissoc</code></li><li><code>filter-values</code></li><li><code>has?</code></li><li><code>key-in?</code></li><li><code>keys</code></li><li><code>map-values</code></li><li><code>merge</code></li><li><code>omit</code></li><li><code>pick</code></li><li><code>update</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-order open comparison protocol, stable sorting, comparator adaptation, and keyed extrema. runtime-core icomparable comparator compare-values max-key min-key reverse-comparator sort sort-by">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/order.eli</p><h3>core-order</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Open comparison protocol, stable sorting, comparator adaptation, and keyed extrema.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/order.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-order exports"><li><code>IComparable</code></li><li><code>comparator</code></li><li><code>compare-values</code></li><li><code>max-key</code></li><li><code>min-key</code></li><li><code>reverse-comparator</code></li><li><code>sort</code></li><li><code>sort-by</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-protocol open protocol definition, extension, inspection, and dispatch policy. runtime-core define-protocol define-protocol-from-definition extend-protocol-category extend-protocol-default extend-protocol-type implements-protocol-operation? implements-protocol? materialize-protocol-from-definition protocol-definition protocol-host-category protocol-method protocol-slot protocol? read-protocol-method-owner read-protocol-operations-owner">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/protocol.eli</p><h3>core-protocol</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Open protocol definition, extension, inspection, and dispatch policy.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/protocol.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-protocol exports"><li><code>define-protocol</code></li><li><code>define-protocol-from-definition</code></li><li><code>extend-protocol-category</code></li><li><code>extend-protocol-default</code></li><li><code>extend-protocol-type</code></li><li><code>implements-protocol-operation?</code></li><li><code>implements-protocol?</code></li><li><code>materialize-protocol-from-definition</code></li><li><code>protocol-definition</code></li><li><code>protocol-host-category</code></li><li><code>protocol-method</code></li><li><code>protocol-slot</code></li><li><code>protocol?</code></li><li><code>read-protocol-method-owner</code></li><li><code>read-protocol-operations-owner</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-record declarative immutable record types with persistent map, value, metadata, and open protocol semantics. runtime-core define-record-type record-field-names record-type record-type-name record-type? record?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/record.eli</p><h3>core-record</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Declarative immutable Record types with persistent Map, value, metadata, and open protocol semantics.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/record.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0168-immutable-record-types.md" data-spec-link="0168">Specification 0168</a></p>
<ul class="api-export-list" aria-label="core-record exports"><li><code>define-record-type</code></li><li><code>record-field-names</code></li><li><code>record-type</code></li><li><code>record-type-name</code></li><li><code>record-type?</code></li><li><code>record?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-regex immutable regular-expression patterns, capture-aware matching, memoized lazy scanning, and literal or callback replacement. runtime-core re-find re-matches re-replace re-seq regex regex-flags regex-source regex?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/regex.eli</p><h3>core-regex</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Immutable regular-expression patterns, capture-aware matching, memoized lazy scanning, and literal or callback replacement.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/regex.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0178-immutable-regex-text-processing.md" data-spec-link="0178">Specification 0178</a></p>
<ul class="api-export-list" aria-label="core-regex exports"><li><code>re-find</code></li><li><code>re-matches</code></li><li><code>re-replace</code></li><li><code>re-seq</code></li><li><code>regex</code></li><li><code>regex-flags</code></li><li><code>regex-source</code></li><li><code>regex?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-sequence protocol-driven replayable sources, head/tail views, finite transformation, interleaving, stepped partitioning, tree traversal, and reduction history. runtime-core butlast concat cycle dedupe distinct drop drop-last drop-while every? ffirst filter find first flatten fnext generate interleave interleave-all interpose iterate keep keep-indexed last map map-indexed mapcat next nfirst nnext not-any? not-every? nth-next nth-rest partition partition-all partition-by prepend range reductions remove repeat repeatedly rest reverse second sequence-nth some split-at split-with take take-last take-nth take-while tree-seq">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/seq.eli</p><h3>core-sequence</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Protocol-driven replayable sources, head/tail views, finite transformation, interleaving, stepped partitioning, tree traversal, and reduction history.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/seq.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-sequence exports"><li><code>butlast</code></li><li><code>concat</code></li><li><code>cycle</code></li><li><code>dedupe</code></li><li><code>distinct</code></li><li><code>drop</code></li><li><code>drop-last</code></li><li><code>drop-while</code></li><li><code>every?</code></li><li><code>ffirst</code></li><li><code>filter</code></li><li><code>find</code></li><li><code>first</code></li><li><code>flatten</code></li><li><code>fnext</code></li><li><code>generate</code></li><li><code>interleave</code></li><li><code>interleave-all</code></li><li><code>interpose</code></li><li><code>iterate</code></li><li><code>keep</code></li><li><code>keep-indexed</code></li><li><code>last</code></li><li><code>map</code></li><li><code>map-indexed</code></li><li><code>mapcat</code></li><li><code>next</code></li><li><code>nfirst</code></li><li><code>nnext</code></li><li><code>not-any?</code></li><li><code>not-every?</code></li><li><code>nth-next</code></li><li><code>nth-rest</code></li><li><code>partition</code></li><li><code>partition-all</code></li><li><code>partition-by</code></li><li><code>prepend</code></li><li><code>range</code></li><li><code>reductions</code></li><li><code>remove</code></li><li><code>repeat</code></li><li><code>repeatedly</code></li><li><code>rest</code></li><li><code>reverse</code></li><li><code>second</code></li><li><code>sequence-nth</code></li><li><code>some</code></li><li><code>split-at</code></li><li><code>split-with</code></li><li><code>take</code></li><li><code>take-last</code></li><li><code>take-nth</code></li><li><code>take-while</code></li><li><code>tree-seq</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-set protocol-driven persistent set algebra, membership relations, and relational data operations. runtime-core difference disjoint? index intersection join map-invert project rename rename-keys select set subset? superset? union">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/set.eli</p><h3>core-set</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Protocol-driven persistent Set algebra, membership relations, and relational data operations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/set.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-set exports"><li><code>difference</code></li><li><code>disjoint?</code></li><li><code>index</code></li><li><code>intersection</code></li><li><code>join</code></li><li><code>map-invert</code></li><li><code>project</code></li><li><code>rename</code></li><li><code>rename-keys</code></li><li><code>select</code></li><li><code>set</code></li><li><code>subset?</code></li><li><code>superset?</code></li><li><code>union</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-sorted persistent avl maps and sets with custom comparators, reversible traversal, and bounded range queries. runtime-core comparator empty-sorted-map empty-sorted-map-by empty-sorted-set empty-sorted-set-by rsubseq sorted-map sorted-map-by sorted-map? sorted-seq sorted-seq-from sorted-set sorted-set-by sorted-set? sorted? subseq">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/sorted.eli</p><h3>core-sorted</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent AVL Maps and Sets with custom comparators, reversible traversal, and bounded range queries.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/sorted.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0175-persistent-sorted-collections.md" data-spec-link="0175">Specification 0175</a></p>
<ul class="api-export-list" aria-label="core-sorted exports"><li><code>comparator</code></li><li><code>empty-sorted-map</code></li><li><code>empty-sorted-map-by</code></li><li><code>empty-sorted-set</code></li><li><code>empty-sorted-set-by</code></li><li><code>rsubseq</code></li><li><code>sorted-map</code></li><li><code>sorted-map-by</code></li><li><code>sorted-map?</code></li><li><code>sorted-seq</code></li><li><code>sorted-seq-from</code></li><li><code>sorted-set</code></li><li><code>sorted-set-by</code></li><li><code>sorted-set?</code></li><li><code>sorted?</code></li><li><code>subseq</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-text portable text predicates, slicing, joining, and affix operations. runtime-core blank? contains? empty? ends-with? join repeat slice starts-at? starts-with? strip-prefix strip-suffix trim whitespace?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/text.eli</p><h3>core-text</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Portable text predicates, slicing, joining, and affix operations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/text.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0081-protocol-driven-text-object.md" data-spec-link="0081">Specification 0081</a></p>
<ul class="api-export-list" aria-label="core-text exports"><li><code>blank?</code></li><li><code>contains?</code></li><li><code>empty?</code></li><li><code>ends-with?</code></li><li><code>join</code></li><li><code>repeat</code></li><li><code>slice</code></li><li><code>starts-at?</code></li><li><code>starts-with?</code></li><li><code>strip-prefix</code></li><li><code>strip-suffix</code></li><li><code>trim</code></li><li><code>whitespace?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-transducer composable single-pass transducers, replayable reducible pipelines, memoized pull sequences, and effectful consumption. runtime-core catting completing compose-transducers deduping distincting dropping dropping-while eduction filtering interposing into keeping keeping-indexed mapcatting mapping mapping-indexed partitioning-all partitioning-by removing run! sequence taking taking-nth taking-while transduce">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/transducer.eli</p><h3>core-transducer</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Composable single-pass transducers, replayable reducible pipelines, memoized pull sequences, and effectful consumption.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/transducer.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-transducer exports"><li><code>catting</code></li><li><code>completing</code></li><li><code>compose-transducers</code></li><li><code>deduping</code></li><li><code>distincting</code></li><li><code>dropping</code></li><li><code>dropping-while</code></li><li><code>eduction</code></li><li><code>filtering</code></li><li><code>interposing</code></li><li><code>into</code></li><li><code>keeping</code></li><li><code>keeping-indexed</code></li><li><code>mapcatting</code></li><li><code>mapping</code></li><li><code>mapping-indexed</code></li><li><code>partitioning-all</code></li><li><code>partitioning-by</code></li><li><code>removing</code></li><li><code>run!</code></li><li><code>sequence</code></li><li><code>taking</code></li><li><code>taking-nth</code></li><li><code>taking-while</code></li><li><code>transduce</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-transient owner-token transient builders for efficient isolated construction. runtime-core ieditable itransientcollection assoc! conj! dissoc! persistent! transient">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/transient.eli</p><h3>core-transient</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Owner-token transient builders for efficient isolated construction.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/transient.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0066-eliscript-authored-core-protocol-algorithms.md" data-spec-link="0066">Specification 0066</a></p>
<ul class="api-export-list" aria-label="core-transient exports"><li><code>IEditable</code></li><li><code>ITransientCollection</code></li><li><code>assoc!</code></li><li><code>conj!</code></li><li><code>dissoc!</code></li><li><code>persistent!</code></li><li><code>transient</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-type frozen positional identity types and lexical anonymous values with complete direct protocol implementations. runtime-core define-type defined-type-fields defined-type-name reify-protocols type-definition? type-of type-value?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/type.eli</p><h3>core-type</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Frozen positional identity types and lexical anonymous values with complete direct protocol implementations.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/type.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0169-protocol-implementation-values.md" data-spec-link="0169">Specification 0169</a></p>
<ul class="api-export-list" aria-label="core-type exports"><li><code>define-type</code></li><li><code>defined-type-fields</code></li><li><code>defined-type-name</code></li><li><code>reify-protocols</code></li><li><code>type-definition?</code></li><li><code>type-of</code></li><li><code>type-value?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-walk stack-safe pre-order and post-order traversal and rewriting of nested persistent values. runtime-core postwalk postwalk-replace prewalk prewalk-replace walk">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/walk.eli</p><h3>core-walk</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Stack-safe pre-order and post-order traversal and rewriting of nested persistent values.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/walk.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0173-persistent-tree-walk.md" data-spec-link="0173">Specification 0173</a></p>
<ul class="api-export-list" aria-label="core-walk exports"><li><code>postwalk</code></li><li><code>postwalk-replace</code></li><li><code>prewalk</code></li><li><code>prewalk-replace</code></li><li><code>walk</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="core-zipper immutable tree locations for stack-safe navigation, editing, and persistent root reconstruction. runtime-core append-child branch? children down edit end? insert-child insert-left insert-right left leftmost lefts list-zipper make-node next node path prev remove replace right rightmost rights root up vector-zipper zipper zipper?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/core/zipper.eli</p><h3>core-zipper</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Immutable tree locations for stack-safe navigation, editing, and persistent root reconstruction.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/core/zipper.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0174-persistent-zipper-navigation.md" data-spec-link="0174">Specification 0174</a></p>
<ul class="api-export-list" aria-label="core-zipper exports"><li><code>append-child</code></li><li><code>branch?</code></li><li><code>children</code></li><li><code>down</code></li><li><code>edit</code></li><li><code>end?</code></li><li><code>insert-child</code></li><li><code>insert-left</code></li><li><code>insert-right</code></li><li><code>left</code></li><li><code>leftmost</code></li><li><code>lefts</code></li><li><code>list-zipper</code></li><li><code>make-node</code></li><li><code>next</code></li><li><code>node</code></li><li><code>path</code></li><li><code>prev</code></li><li><code>remove</code></li><li><code>replace</code></li><li><code>right</code></li><li><code>rightmost</code></li><li><code>rights</code></li><li><code>root</code></li><li><code>up</code></li><li><code>vector-zipper</code></li><li><code>zipper</code></li><li><code>zipper?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="persistent-queue persistent fifo queues with shared vector views, constant-time dequeue, and amortized constant-time enqueue. runtime-core empty-persistent-queue persistent-queue persistent-queue-conj persistent-queue-count persistent-queue-empty? persistent-queue-meta persistent-queue-peek persistent-queue-pop persistent-queue-reduce persistent-queue-to-array persistent-queue-with-meta persistent-queue?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/persistent-queue.eli</p><h3>persistent-queue</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Persistent FIFO queues with shared Vector views, constant-time dequeue, and amortized constant-time enqueue.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/persistent-queue.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0166-persistent-queue.md" data-spec-link="0166">Specification 0166</a></p>
<ul class="api-export-list" aria-label="persistent-queue exports"><li><code>empty-persistent-queue</code></li><li><code>persistent-queue</code></li><li><code>persistent-queue-conj</code></li><li><code>persistent-queue-count</code></li><li><code>persistent-queue-empty?</code></li><li><code>persistent-queue-meta</code></li><li><code>persistent-queue-peek</code></li><li><code>persistent-queue-pop</code></li><li><code>persistent-queue-reduce</code></li><li><code>persistent-queue-to-array</code></li><li><code>persistent-queue-with-meta</code></li><li><code>persistent-queue?</code></li></ul>
</article>
</section>
<section id="host-interop" data-api-section>
<h2>Host interoperation</h2>
<p>4 modules, 21 exports.</p>
<article class="api-module" data-api-module data-api-searchable="gepo self-describing http discovery, hierarchical indexes, safe usage, authorized invocation and fetch request handlers. host-interop gepo-classify-discovery gepo-client gepo-discovery-candidates gepo-index gepo-operation gepo-service gepo-usage">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/gepo.eli</p><h3>gepo</h3></div>
<span class="status status-next">accepted</span>
</header>
<p>Self-describing HTTP discovery, hierarchical indexes, safe usage, authorized invocation and Fetch request handlers.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/gepo.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0181-markdown-wire-and-http-rpc.md" data-spec-link="0181">Specification 0181</a></p>
<ul class="api-export-list" aria-label="gepo exports"><li><code>gepo-classify-discovery</code></li><li><code>gepo-client</code></li><li><code>gepo-discovery-candidates</code></li><li><code>gepo-index</code></li><li><code>gepo-operation</code></li><li><code>gepo-service</code></li><li><code>gepo-usage</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="interop-js explicit shallow and bounded conversion to native javascript containers. host-interop array? from-js js-array js-map js-map? js-object js-set js-set? object? to-js to-js-object">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/interop/js.eli</p><h3>interop-js</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Explicit shallow and bounded conversion to native JavaScript containers.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/interop/js.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0073-native-javascript-container-interop.md" data-spec-link="0073">Specification 0073</a></p>
<ul class="api-export-list" aria-label="interop-js exports"><li><code>array?</code></li><li><code>from-js</code></li><li><code>js-array</code></li><li><code>js-map</code></li><li><code>js-map?</code></li><li><code>js-object</code></li><li><code>js-set</code></li><li><code>js-set?</code></li><li><code>object?</code></li><li><code>to-js</code></li><li><code>to-js-object</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="mdp structured markdown parsing and encoding for native json values with bounded nesting and located errors. host-interop mdp-encode mdp-parse">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/mdp.eli</p><h3>mdp</h3></div>
<span class="status status-next">accepted</span>
</header>
<p>Structured Markdown parsing and encoding for native JSON values with bounded nesting and located errors.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/mdp.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0181-markdown-wire-and-http-rpc.md" data-spec-link="0181">Specification 0181</a></p>
<ul class="api-export-list" aria-label="mdp exports"><li><code>mdp-encode</code></li><li><code>mdp-parse</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="mds open-world schema validation with field, section and semantic constraints. host-interop mds-validate">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/mds.eli</p><h3>mds</h3></div>
<span class="status status-next">accepted</span>
</header>
<p>Open-world schema validation with field, section and semantic constraints.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/mds.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0181-markdown-wire-and-http-rpc.md" data-spec-link="0181">Specification 0181</a></p>
<ul class="api-export-list" aria-label="mds exports"><li><code>mds-validate</code></li></ul>
</article>
</section>
<section id="state" data-api-section>
<h2>State</h2>
<p>2 modules, 17 exports.</p>
<article class="api-module" data-api-module data-api-searchable="deferred synchronous delayed computation and value-semantic function memoization. state delay delay? force memoize realized?">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/deferred.eli</p><h3>deferred</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Synchronous delayed computation and value-semantic function memoization.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/deferred.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0161-deferred-and-memoized-computation.md" data-spec-link="0161">Specification 0161</a></p>
<ul class="api-export-list" aria-label="deferred exports"><li><code>delay</code></li><li><code>delay?</code></li><li><code>force</code></li><li><code>memoize</code></li><li><code>realized?</code></li></ul>
</article>
<article class="api-module" data-api-module data-api-searchable="state-atom synchronous atomic references with value-pair transitions, compare-and-set, validators, and ordered watches. state add-watch atom atom? compare-and-set! deref get-validator remove-watch reset! reset-vals! set-validator! swap! swap-vals!">
<header class="api-module-header">
<div><p class="api-module-path">stdlib/state/atom.eli</p><h3>state-atom</h3></div>
<span class="status status-next">stable</span>
</header>
<p>Synchronous atomic references with value-pair transitions, compare-and-set, validators, and ordered watches.</p>
<p class="api-module-meta"><a href="https://github.com/liuchong/eliscript/blob/master/stdlib/state/atom.eli">Source</a><a href="https://github.com/liuchong/eliscript/blob/master/specs/0072-atomic-state-references.md" data-spec-link="0072">Specification 0072</a></p>
<ul class="api-export-list" aria-label="state-atom exports"><li><code>add-watch</code></li><li><code>atom</code></li><li><code>atom?</code></li><li><code>compare-and-set!</code></li><li><code>deref</code></li><li><code>get-validator</code></li><li><code>remove-watch</code></li><li><code>reset!</code></li><li><code>reset-vals!</code></li><li><code>set-validator!</code></li><li><code>swap!</code></li><li><code>swap-vals!</code></li></ul>
</article>
</section>
<p class="api-empty" data-api-empty hidden>No matching modules.</p>
</article>
</div>
</main>
<footer class="site-footer"><div class="footer-shell"><p>Eliscript · Library API</p><div class="footer-links"><a href="language.html">Language</a><a href="https://github.com/liuchong/eliscript/blob/master/LICENSE">GPL-3.0+</a><a href="https://www.npmjs.com/package/eliscript/v/0.1.1" data-version-npm>npm</a><a href="https://github.com/liuchong/eliscript">GitHub</a><a href="https://github.com/liuchong/eliscript/releases/tag/v0.1.1" data-version data-version-github>v0.1.1</a><span>© <span data-year>2026</span></span></div></div></footer>
</body>
</html>