on master help sign in
Merge pull request #1298 from tinnus-napbus/update-stdlib-4g-to-4j

update stdlib 4g to 4j

commit0cdc374c1aa34beb8c96a6497792cfc0ed9abc00 authortinnus-napbus <77721746+tinnus-napbus@users.noreply.github.com> dateWed 5 Jan 2022, 22:53 (5 years ago) parent9b5d99014bcd94
6 files changed+1602−1520
content/docs/hoon/reference/stdlib/4g.md+107−57 content/docs/hoon/reference/stdlib/4h.md+124−385 content/docs/hoon/reference/stdlib/4i.md+422−388 content/docs/hoon/reference/stdlib/4j.md+773−631 content/docs/hoon/reference/stdlib/table-of-contents.md+60−34 lib/glossary.js+116−25
content/docs/hoon/reference/stdlib/4g.md+107−57
@@ -8,14 +8,14 @@ template = "doc.html"
88
99Parse or crash
1010
11−Parse a cord with a given `++rule` and crash if the `++cord` isn't entirely
11+Parse a cord with a given `rule` and crash if the `cord` isn't entirely
1212parsed.
1313
1414#### Accepts
1515
1616`naf` is an atom.
1717
18−`sab` is a `++rule`.
18+`sab` is a `rule`.
1919
2020#### Produces
2121
@@ -24,27 +24,77 @@ The value of the parse result, or crash.
2424#### Source
2525
2626```hoon
27− ++ rash |*({naf/@ sab/rule} (scan (trip naf) sab)) ::
27+++ rash |*([naf=@ sab=rule] (scan (trip naf) sab))
2828```
2929
3030#### Examples
3131
3232```
33− > (rash 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
34− "I was the world in which I walked, and what I saw"
33+> (rash 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
34+"I was the world in which I walked, and what I saw"
3535
36− > (rash 'abc' (just 'a'))
37− ! {1 2}
38− ! 'syntax-error'
39− ! exit
36+> (rash 'abc' (just 'a'))
37+! {1 2}
38+! 'syntax-error'
39+! exit
4040
41− > (rash 'abc' (jest 'abc'))
42− 'abc'
41+> (rash 'abc' (jest 'abc'))
42+'abc'
4343
44− > (rash 'abc' (jest 'ab'))
45− ! {1 3}
46− ! 'syntax-error'
47− ! exit
44+> (rash 'abc' (jest 'ab'))
45+! {1 3}
46+! 'syntax-error'
47+! exit
48+```
49+
50+---
51+
52+## `++rose`
53+
54+Parse to each
55+
56+Parse `tape` `los` with `rule` `sab`, producing an `(each @ud (unit *))`. If
57+`los` was not fully consumed, the result is `%.n` and `p` contains the column
58+number before failure occurred. If `los` was fully consumed, the result is
59+`%.y` and `p` contains either `sab`'s result in a `unit`, or a null `unit` if
60+parsing failed.
61+
62+#### Accepts
63+
64+`los` is a `tape`.
65+
66+`sab` is a `rule`.
67+
68+#### Produces
69+
70+`(each @ud (unit *))`, where the `*` is whatever type the `rule` produces.
71+
72+#### Source
73+
74+```hoon
75+++ rose |* [los=tape sab=rule]
76+ =+ vex=(sab [[1 1] los])
77+ =+ len=(lent los)
78+ ?. =(+(len) q.p.vex) [%| p=(dec q.p.vex)]
79+ ?~ q.vex
80+ [%& p=~]
81+ [%& p=[~ u=p.u.q.vex]]
82+```
83+
84+#### Examples
85+
86+```
87+> (rose "!" zap)
88+[%.y p=[~ u='!']]
89+
90+> (rose "?" zap)
91+[%.n p=0]
92+
93+> (rose "!?" zap)
94+[%.n p=1]
95+
96+> (rose "!" ;~(plug zap fail))
97+[%.y p=~]
4898```
4999
50100---
@@ -69,26 +119,26 @@ The value of the parse result, or null.
69119#### Source
70120
71121```hoon
72− ++ rush |*({naf/@ sab/rule} (rust (trip naf) sab))
122+++ rush |*([naf=@ sab=rule] (rust (trip naf) sab))
73123```
74124
75125#### Examples
76126
77127```
78− > (rush 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
79− [~ "I was the world in which I walked, and what I saw"]
128+> (rush 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
129+[~ "I was the world in which I walked, and what I saw"]
80130
81− > (rush 'abc' (just 'a'))
82− ~
131+> (rush 'abc' (just 'a'))
132+~
83133
84− > (rush 'abc' (jest 'abc'))
85− [~ 'abc']
134+> (rush 'abc' (jest 'abc'))
135+[~ 'abc']
86136
87− > (rush 'abc' (jest 'ac'))
88− ~
137+> (rush 'abc' (jest 'ac'))
138+~
89139
90− > (rush 'abc' (jest 'ab'))
91− ~
140+> (rush 'abc' (jest 'ab'))
141+~
92142```
93143
94144---
@@ -97,38 +147,38 @@ The value of the parse result, or null.
97147
98148Parse tape or null
99149
100−Parse a `++tape` with a given `++rule` and produce null if the `++tape` isn't
150+Parse a `tape` with a given `rule` and produce null if the `tape` isn't
101151entirely parsed.
102152
103153#### Accepts
104154
105−`los` is a `++tape`.
155+`los` is a `tape`.
106156
107−`sab` is a `++rule`.
157+`sab` is a `rule`.
108158
109159#### Produces
110160
111−A `(unit ,@t)`
161+A `(unit *)`, where `*` is the type produced by `sab`.
112162
113163#### Source
114164
115165```hoon
116− ++ rust |* {los/tape sab/rule}
117− =+ vex=((full sab) [[1 1] los])
118− ?~(q.vex ~ [~ u=p.u.q.vex])
166+++ rust |* [los=tape sab=rule]
167+ =+ vex=((full sab) [[1 1] los])
168+ ?~(q.vex ~ [~ u=p.u.q.vex])
119169```
120170
121171#### Examples
122172
123173```
124− > (rust "I was the world in which I walked, and what I saw" (star (shim 0 200)))
125− [~ "I was the world in which I walked, and what I saw"]
174+> (rust "I was the world in which I walked, and what I saw" (star (shim 0 200)))
175+[~ "I was the world in which I walked, and what I saw"]
126176
127− > (rust "Or heard or felt came not but from myself;" (star (shim 0 200)))
128− [~ "Or heard or felt came not but from myself;"]
177+> (rust "Or heard or felt came not but from myself;" (star (shim 0 200)))
178+[~ "Or heard or felt came not but from myself;"]
129179
130− > (rust "And there I found myself more truly and more strange." (jest 'And there I'))
131− ~
180+> (rust "And there I found myself more truly and more strange." (jest 'And there I'))
181+~
132182```
133183
134184---
@@ -137,43 +187,43 @@ A `(unit ,@t)`
137187
138188Parse tape or crash
139189
140−Parse a `++tape` with a given `++rule` and crash if the `++tape` isn't entirely
190+Parse a `tape` with a given `rule` and crash if the `tape` isn't entirely
141191parsed.
142192
143193#### Accepts
144194
145−`los` is a tape.
195+`los` is a `tape`.
146196
147−`sab` is a rule.
197+`sab` is a `rule`.
148198
149199#### Produces
150200
151−Either a `++tape` or a crash.
201+Either a `tape` or a crash.
152202
153203#### Source
154204
155205```hoon
156− ++ scan |* {los/tape sab/rule}
157− =+ vex=((full sab) [[1 1] los])
158− ?~ q.vex
159− ~_ (show [%m '{%d %d}'] p.p.vex q.p.vex ~)
160− ~|('syntax-error' !!)
161− p.u.q.vex
206+++ scan |* [los=tape sab=rule]
207+ =+ vex=((full sab) [[1 1] los])
208+ ?~ q.vex
209+ ~_ (show [%m '{%d %d}'] p.p.vex q.p.vex ~)
210+ ~_(leaf+"syntax error" !!)
211+ p.u.q.vex
162212```
163213
164214#### Examples
165215
166216```
167− > (scan "I was the world in which I walked, and what I saw" (star (shim 0 200)))
168− "I was the world in which I walked, and what I saw"
217+> (scan "I was the world in which I walked, and what I saw" (star (shim 0 200)))
218+"I was the world in which I walked, and what I saw"
169219
170− > (scan "Or heard or felt came not but from myself;" (star (shim 0 200)))
171− "Or heard or felt came not but from myself;"
220+> (scan "Or heard or felt came not but from myself;" (star (shim 0 200)))
221+"Or heard or felt came not but from myself;"
172222
173− > (scan "And there I found myself more truly and more strange." (jest 'And there I'))
174− ! {1 12}
175− ! 'syntax-error'
176− ! exit
223+> (scan "And there I found myself more truly and more strange." (jest 'And there I'))
224+! {1 12}
225+! 'syntax-error'
226+! exit
177227```
178228
179229---
content/docs/hoon/reference/stdlib/4h.md+124−385
@@ -13,24 +13,14 @@ Parses ASCII character 32, space.
1313#### Source
1414
1515```hoon
16− ++ ace (just ' ')
16+++ ace (just ' ')
1717```
1818
1919#### Examples
2020
2121```
22− > (scan " " ace)
23− ~~.
24−
25− > `cord`
26− (scan " " ace)
27− ' '
28−
29− > (ace [[1 1] " "])
30− [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q=""]]]]
31−
32− > (ace [[1 1] " abc "])
33− [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q="abc "]]]]
22+> (scan " " ace)
23+' '
3424```
3525
3626---
@@ -44,23 +34,14 @@ Parses ASCII character 124, the vertical bar.
4434#### Source
4535
4636```hoon
47− ++ bar (just '|')
37+++ bar (just '|')
4838```
4939
5040#### Examples
5141
5242```
53− > (scan "|" bar)
54− ~~~7c.
55−
56− > `cord`(scan "|" bar)
57− '|'
58−
59− > (bar [[1 1] "|"])
60− [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q=""]]]]
61−
62− > (bar [[1 1] "|="])
63− [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q="="]]]]
43+> (scan "|" bar)
44+'|'
6445```
6546
6647---
@@ -70,32 +51,20 @@ Parses ASCII character 124, the vertical bar.
7051Parse backslash
7152
7253Parses ASCII character 92, the backslash. Note the extra `\` in the calling of
73−`bas` with [`++just`](/docs/hoon/reference/stdlib/4f) is to escape the escape
54+`bas` with [`just`](/docs/hoon/reference/stdlib/4f#just) is to escape the escape
7455character, `\`.
7556
7657#### Source
7758
7859```hoon
79− ++ bas (just '\\')
60+++ bas (just '\\')
8061```
8162
8263#### Examples
8364
8465```
85− > (scan "\\" bas)
86− ~~~5c.
87−
88− > `cord`(scan "\\" bas)
89− '\'
90−
91− > (bas [[1 1] "\"])
92− ~ <syntax error at [1 18]>
93−
94− > (bas [[1 1] "\\"])
95− [p=[p=1 q=2] q=[~ [p=~~~5c. q=[p=[p=1 q=2] q=""]]]]
96−
97− > (bas [[1 1] "\""])
98− [p=[p=1 q=1] q=~]
66+> (scan "\\" bas)
67+'\\'
9968```
10069
10170---
@@ -109,23 +78,14 @@ Parses ASCII character 36, the dollar sign.
10978#### Source
11079
11180```hoon
112− ++ buc (just '$')
81+++ buc (just '$')
11382```
11483
11584#### Examples
11685
11786```
118− > (scan "$" buc)
119− ~~~24.
120−
121− > `cord`(scan "$" buc)
122− '$'
123−
124− > (buc [[1 1] "$"])
125− [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q=""]]]]
126−
127− > (buc [[1 1] "$%"])
128− [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q="%"]]]]
87+> (scan "$" buc)
88+'$'
12989```
13090
13191---
@@ -139,23 +99,14 @@ Parses ASCII character 95, the underscore.
13999#### Source
140100
141101```hoon
142− ++ cab (just '_')
102+++ cab (just '_')
143103```
144104
145105#### Examples
146106
147107```
148− > (scan "_" cab)
149− ~~~5f.
150−
151− > `cord`(scan "_" cab)
152− '_'
153−
154− > (cab [[1 1] "_"])
155− [p=[p=1 q=2] q=[~ [p=~~~5f. q=[p=[p=1 q=2] q=""]]]]
156−
157− > (cab [[1 1] "|_"])
158− [p=[p=1 q=1] q=~]
108+> (scan "_" cab)
109+'_'
159110```
160111
161112---
@@ -169,23 +120,14 @@ Parses ASCII character 37, the percent sign.
169120#### Source
170121
171122```hoon
172− ++ cen (just '%')
123+++ cen (just '%')
173124```
174125
175126#### Examples
176127
177128```
178− > (scan "%" cen)
179− ~~~25.
180−
181− > `cord`(scan "%" cen)
182− '%'
183−
184− > (cen [[1 1] "%"])
185− [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q=""]]]]
186−
187− > (cen [[1 1] "%^"])
188− [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q="^"]]]]
129+> (scan "%" cen)
130+'%'
189131```
190132
191133---
@@ -199,23 +141,14 @@ Parses ASCII character 58, the colon
199141#### Source
200142
201143```hoon
202− ++ col (just ':')
144+++ col (just ':')
203145```
204146
205147#### Examples
206148
207149```
208− > (scan ":" col)
209− ~~~3a.
210−
211− > `cord`(scan ":" col)
212− ':'
213−
214− > (col [[1 1] ":"])
215− [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q=""]]]]
216−
217− > (col [[1 1] ":-"])
218− [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q="-"]]]]
150+> (scan ":" col)
151+':'
219152```
220153
221154---
@@ -229,23 +162,14 @@ Parses ASCII character 44, the comma.
229162#### Source
230163
231164```hoon
232− ++ com (just ',')
165+++ com (just ',')
233166```
234167
235168#### Examples
236169
237170```
238− > (scan "," com)
239− ~~~2c.
240−
241− > `cord`(scan "," com)
242− ','
243−
244− > (com [[1 1] ","])
245− [p=[p=1 q=2] q=[~ [p=~~~2c. q=[p=[p=1 q=2] q=""]]]]
246−
247− > (com [[1 1] "not com"])
248− [p=[p=1 q=1] q=~]
171+> (scan "," com)
172+','
249173```
250174
251175---
@@ -259,28 +183,14 @@ Parses ASCII character 34, the double quote.
259183#### Source
260184
261185```hoon
262− ++ doq (just '"')
186+++ doq (just '"')
263187```
264188
265189#### Examples
266190
267191```
268− > (scan "\"" doq)
269− ~~~22.
270−
271− > `cord`(scan "\"" doq)
272− '"'
273−
274− > (doq [[1 1] "\""])
275− [p=[p=1 q=2] q=[~ [p=~~~22. q=[p=[p=1 q=2] q=""]]]]
276−
277− > (doq [[1 1] "not successfully parsed"])
278− [p=[p=1 q=1] q=~]
279−
280− > (scan "see?" doq)
281− ! {1 1}
282− ! 'syntax-error'
283− ! exit
192+> (scan "\"" doq)
193+'"'
284194```
285195
286196---
@@ -294,23 +204,14 @@ Parses ASCII character 46, the period.
294204#### Source
295205
296206```hoon
297− ++ dot (just '.')
207+++ dot (just '.')
298208```
299209
300210#### Examples
301211
302212```
303− > (scan "." dot)
304− ~~~.
305−
306− > `cord`(scan "." dot)
307− '.'
308−
309− > (dot [[1 1] "."])
310− [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q=""]]]]
311−
312− > (dot [[1 1] ".^"])
313− [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q="^"]]]]
213+> (scan "." dot)
214+'.'
314215```
315216
316217---
@@ -324,20 +225,14 @@ Parses ASCII character 47, the forward slash.
324225#### Source
325226
326227```hoon
327− ++ fas (just '/')
228+++ fas (just '/')
328229```
329230
330231#### Examples
331232
332233```
333− > (scan "/" fas)
334− '/'
335−
336− > (fas [[1 1] "/"])
337− [p=[p=1 q=2] q=[~ [p=~~~2f. q=[p=[p=1 q=2] q=""]]]]
338−
339− > (fas [[1 1] "|/"])
340− [p=[p=1 q=1] q=~]
234+> (scan "/" fas)
235+'/'
341236```
342237
343238---
@@ -351,23 +246,14 @@ Parses ASCII character 60, the less-than sign.
351246#### Source
352247
353248```hoon
354− ++ gal (just '<')
249+++ gal (just '<')
355250```
356251
357252#### Examples
358253
359254```
360− > (scan "<" gal)
361− '<'
362−
363− > (gal [[1 1] "<"])
364− [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q=""]]]]
365−
366− > (gal [[1 1] "<+"])
367− [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q="+"]]]]
368−
369− > (gal [[1 1] "+<"])
370− [p=[p=1 q=1] q=~]
255+> (scan "<" gal)
256+'<'
371257```
372258
373259---
@@ -381,23 +267,14 @@ Parses ASCII character 62, the greater-than sign.
381267#### Source
382268
383269```hoon
384− ++ gar (just '>')
270+++ gar (just '>')
385271```
386272
387273#### Examples
388274
389275```
390− > (scan ">" gar)
391− ~~~3e.
392−
393− > `cord`(scan ">" gar)
394− '>'
395−
396− > (gar [[1 1] ">"])
397− [p=[p=1 q=2] q=[~ [p=~~~3e. q=[p=[p=1 q=2] q=""]]]]
398−
399− > (gar [[1 1] "=>"])
400− [p=[p=1 q=1] q=~]
276+> (scan ">" gar)
277+'>'
401278```
402279
403280---
@@ -411,20 +288,14 @@ Parses ASCII character 35, the number sign.
411288#### Source
412289
413290```hoon
414− ++ hax (just '#')
291+++ hax (just '#')
415292```
416293
417294#### Examples
418295
419296```
420− > (scan "#" hax)
421− '#'
422−
423− > (hax [[1 1] "#"])
424− [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q=""]]]]
425−
426− > (hax [[1 1] "#!"])
427− [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q="!"]]]]
297+> (scan "#" hax)
298+'#'
428299```
429300
430301---
@@ -438,20 +309,14 @@ Parses ASCII character 45, the hyphen.
438309#### Source
439310
440311```hoon
441− ++ hep (just '-')
312+++ hep (just '-')
442313```
443314
444315#### Examples
445316
446317```
447− > (scan "-" hep)
448− '-'
449−
450− > (hep [[1 1] "-"])
451− [p=[p=1 q=2] q=[~ [p=~~- q=[p=[p=1 q=2] q=""]]]]
452−
453− > (hep [[1 1] ":-"])
454− [p=[p=1 q=1] q=~]
318+> (scan "-" hep)
319+'-'
455320```
456321
457322---
@@ -460,27 +325,21 @@ Parses ASCII character 45, the hyphen.
460325
461326Parse left curley bracket
462327
463−Parses ASCII character 123, the left curly bracket. Note that `{`
464−(`kel`) and `}` (`ker`) open and close a Hoon expression for Hoon string
465−interpolation. To parse either of them, they must be escaped.
328+Parses ASCII character 123, the left curly bracket. Note that `{` (`kel`) opens
329+a Hoon expression for Hoon string interpolation. To parse it, therefore, it must
330+be escaped.
466331
467332#### Source
468333
469334```hoon
470− ++ kel (just '{')
335+++ kel (just '{')
471336```
472337
473338#### Examples
474339
475340```
476− > (scan "\{" kel)
477− '{'
478−
479− > (kel [[1 1] "\{"])
480− [p=[p=1 q=2] q=[~ [p=~~~7b. q=[p=[p=1 q=2] q=""]]]]
481−
482− > (kel [[1 1] " \{"])
483− [p=[p=1 q=1] q=~]
341+> (scan "\{" kel)
342+'{'
484343```
485344
486345---
@@ -489,27 +348,19 @@ interpolation. To parse either of them, they must be escaped.
489348
490349Parse right curley bracket
491350
492−Parses ASCII character 125, the right curly bracket. Note that `{`
493−(`kel`) and `}` (`ker`) open and close a Hoon expression for Hoon string
494−interpolation. To parse either of them, they must be escaped.
351+Parses ASCII character 125, the right curly bracket.
495352
496353#### Source
497354
498355```hoon
499− ++ ker (just '}')
356+++ ker (just '}')
500357```
501358
502359#### Examples
503360
504361```
505− > (scan "}" ker)
506− '}'
507−
508− > (ker [[1 1] "}"])
509− [p=[p=1 q=2] q=[~ [p=~~~7d. q=[p=[p=1 q=2] q=""]]]]
510−
511− > (ker [[1 1] "\{}"])
512− [p=[p=1 q=1] q=~]
362+> (scan "}" ker)
363+'}'
513364```
514365
515366---
@@ -523,20 +374,14 @@ Parses ASCII character 94, the caret.
523374#### Source
524375
525376```hoon
526− ++ ket (just '^')
377+++ ket (just '^')
527378```
528379
529380#### Examples
530381
531382```
532− > (scan "^" ket)
533− '^'
534−
535− > (ket [[1 1] "^"])
536− [p=[p=1 q=2] q=[~ [p=~~~5e. q=[p=[p=1 q=2] q=""]]]]
537−
538− > (ket [[1 1] ".^"])
539− [p=[p=1 q=1] q=~]
383+> (scan "^" ket)
384+'^'
540385```
541386
542387---
@@ -550,115 +395,82 @@ Parses ASCII character 43, the plus sign.
550395#### Source
551396
552397```hoon
553− ++ lus (just '+')
398+++ lus (just '+')
554399```
555400
556401#### Examples
557402
558403```
559− > (scan "+" lus)
560− ~~~2b.
561−
562− > `cord`(scan "+" lus)
563− '+'
564−
565− > (lus [[1 1] "+"])
566− [p=[p=1 q=2] q=[~ [p=~~~2b. q=[p=[p=1 q=2] q=""]]]]
567−
568− > (lus [[1 1] ".+"])
569− [p=[p=1 q=1] q=~]
404+> (scan "+" lus)
405+'+'
570406```
571407
572408---
573409
574−## `++pam`
410+## `++mic`
575411
576−Parse ampersand
412+Parse semicolon
577413
578−Parses ASCII character 38, the ampersand.
414+Parses ASCII character 59, the semicolon.
579415
580416#### Source
581417
582418```hoon
583− ++ pam (just '&')
419+++ mic (just ';')
584420```
585421
586422#### Examples
587423
588424```
589− > (scan "&" pam)
590− ~~~26.
591−
592− > `cord`(scan "&" pam)
593− '&'
594−
595− > (pam [[1 1] "&"])
596− [p=[p=1 q=2] q=[~ [p=~~~26. q=[p=[p=1 q=2] q=""]]]]
597−
598− > (pam [[1 1] "?&"])
599− [p=[p=1 q=1] q=~]
425+> (scan ";" mic)
426+';'
600427```
601428
602429---
603430
604−## `++pat`
431+## `++pal`
605432
606−Parse "at" sign
433+Parse left parenthesis
607434
608−Parses ASCII character 64, the "at" sign.
435+Parses ASCII character 40, the left parenthesis.
609436
610437#### Source
611438
612439```hoon
613− ++ pat (just '@')
440+++ pal (just '(')
614441```
615442
616443#### Examples
617444
618445```
619− > (scan "@" pat)
620− ~~~4.
621−
622− > `cord`(scan "@" pat)
623− '@'
624−
625− > (pat [[1 1] "@"])
626− [p=[p=1 q=2] q=[~ [p=~~~4. q=[p=[p=1 q=2] q=""]]]]
627−
628− > (pat [[1 1] "?@"])
629− [p=[p=1 q=1] q=~]
446+> (scan "(" pal)
447+'('
630448```
631449
632450---
633451
634−## `++pel`
452+## `++pam`
635453
636−Parse left parenthesis
454+Parse ampersand
637455
638−Parses ASCII character 40, the left parenthesis.
456+Parses ASCII character 38, the ampersand.
639457
640458#### Source
641459
642460```hoon
643− ++ pel (just '(')
461+++ pam (just '&')
644462```
645463
646464#### Examples
647465
648466```
649− > (scan "(" pel)
650− '('
651−
652− > (pel [[1 1] "("])
653− [p=[p=1 q=2] q=[~ [p=~~~28. q=[p=[p=1 q=2] q=""]]]]
654−
655− > (pel [[1 1] ";("])
656− [p=[p=1 q=1] q=~]
467+> (scan "&" pam)
468+'&'
657469```
658470
659471---
660472
661−## `++per`
473+## `++par`
662474
663475Parse right parenthesis
664476
@@ -667,74 +479,56 @@ Parses ASCII character 41, the right parenthesis.
667479#### Source
668480
669481```hoon
670− ++ per (just ')')
482+++ par (just ')')
671483```
672484
673485#### Examples
674486
675487```
676− > (scan ")" per)
677− ')'
678−
679− > (per [[1 1] ")"])
680− [p=[p=1 q=2] q=[~ [p=~~~29. q=[p=[p=1 q=2] q=""]]]]
681−
682− > (per [[1 1] " )"])
683− [p=[p=1 q=1] q=~]
488+> (scan ")" par)
489+')'
684490```
685491
686492---
687493
688−## `++sel`
494+## `++pat`
689495
690−Parse left square bracket
496+Parse "at" sign
691497
692−Parses ASCII character 91, the left square bracket.
498+Parses ASCII character 64, the "at" sign.
693499
694500#### Source
695501
696502```hoon
697− ++ sel (just '[')
503+++ pat (just '@')
698504```
699505
700506#### Examples
701507
702508```
703− > (scan "[" sel)
704− '['
705−
706− > (sel [[1 1] "["])
707− [p=[p=1 q=2] q=[~ [p=~~~5b. q=[p=[p=1 q=2] q=""]]]]
708−
709− > (sel [[1 1] "-["])
710− [p=[p=1 q=1] q=~]
509+> (scan "@" pat)
510+'@'
711511```
712512
713513---
714514
715−## `++sem`
515+## `++sel`
716516
717−Parse semicolon
517+Parse left square bracket
718518
719−Parses ASCII character 59, the semicolon.
519+Parses ASCII character 91, the left square bracket.
720520
721521#### Source
722522
723523```hoon
724− ++ sem (just ';')
524+++ sel (just '[')
725525```
726526
727527#### Examples
728528
729529```
730− > (scan ";" sem)
731− ';'
732−
733− > (sem [[1 1] ";"])
734− [p=[p=1 q=2] q=[~ [p=~~~3b. q=[p=[p=1 q=2] q=""]]]]
735−
736− > (sem [[1 1] " ;"])
737− [p=[p=1 q=1] q=~]
530+> (scan "[" sel)
531+'['
738532```
739533
740534---
@@ -748,20 +542,14 @@ Parses ASCII character 93, the right square bracket.
748542#### Source
749543
750544```hoon
751− ++ ser (just ']')
545+++ ser (just ']')
752546```
753547
754548#### Examples
755549
756550```
757− > (scan "]" ser)
758− ']'
759−
760− > (ser [[1 1] "]"])
761− [p=[p=1 q=2] q=[~ [p=~~~5d. q=[p=[p=1 q=2] q=""]]]]
762−
763− > (ser [[1 1] "[ ]"])
764− [p=[p=1 q=1] q=~]
551+> (scan "]" ser)
552+']'
765553```
766554
767555---
@@ -775,20 +563,14 @@ Parses ASCII character 126, the tilde.
775563#### Source
776564
777565```hoon
778− ++ sig (just '~')
566+++ sig (just '~')
779567```
780568
781569#### Examples
782570
783571```
784− > (scan "~" sig)
785− '~'
786−
787− > (sig [[1 1] "~"])
788− [p=[p=1 q=2] q=[~ [p=~~~~ q=[p=[p=1 q=2] q=""]]]]
789−
790− > (sig [[1 1] "?~"])
791− [p=[p=1 q=1] q=~]
572+> (scan "~" sig)
573+'~'
792574```
793575
794576---
@@ -797,26 +579,20 @@ Parses ASCII character 126, the tilde.
797579
798580Parse single quote
799581
800−Parses ASCII character 39, soq. Note the extra '' is to escape the first
801−`soq` because soq delimits a `++cord`.
582+Parses ASCII character 39, soq. Note the `\` in the example is to escape the soq
583+because soq delimits a `cord`.
802584
803585#### Source
804586
805587```hoon
806− ++ soq (just '\'')
588+++ soq (just '\'')
807589```
808590
809591#### Examples
810592
811593```
812− > (scan "'" soq)
813− '\''
814−
815− > (soq [[1 1] "'"])
816− [p=[p=1 q=2] q=[~ [p=~~~27. q=[p=[p=1 q=2] q=""]]]]
817−
818− > (soq [[1 1] ">'"])
819− [p=[p=1 q=1] q=~]
594+> (scan "'" soq)
595+'\''
820596```
821597
822598---
@@ -830,54 +606,35 @@ Parses ASCII character 42, the asterisk.
830606#### Source
831607
832608```hoon
833− ++ tar (just '*')
609+++ tar (just '*')
834610```
835611
836612#### Examples
837613
838614```
839− > (scan "*" tar)
840− ~~~2a.
841−
842− > `cord`(scan "*" tar)
843− '*'
844−
845− > (tar [[1 1] "*"])
846− [p=[p=1 q=2] q=[~ [p=~~~2a. q=[p=[p=1 q=2] q=""]]]]
847−
848− > (tar [[1 1] ".*"])
849− [p=[p=1 q=1] q=~]
615+> (scan "*" tar)
616+'*'
850617```
851618
852619---
853620
854−## `++tec`
621+## `++tic`
855622
856623Parse backtick
857624
858−Parses ASCII character 96, the backtick (also known as the "grave
859−accent").
625+Parses ASCII character 96, the backtick.
860626
861627#### Source
862628
863629```hoon
864− ++ tec (just '`') :: backTiCk
630+++ tic (just '`')
865631```
866632
867633#### Examples
868634
869635```
870− > (scan "`" tec)
871− ~~~6.
872−
873− > `cord`(scan "`" tec)
874− '`'
875−
876− > (tec [[1 1] "`"])
877− [p=[p=1 q=2] q=[~ [p=~~~6. q=[p=[p=1 q=2] q=""]]]]
878−
879− > (tec [[1 1] " `"])
880− [p=[p=1 q=1] q=~]
636+> (scan "`" tic)
637+'`'
881638```
882639
883640---
@@ -891,20 +648,14 @@ Parses ASCII character 61, the equals sign.
891648#### Source
892649
893650```hoon
894− ++ tis (just '=')
651+++ tis (just '=')
895652```
896653
897654#### Examples
898655
899656```
900− > (scan "=" tis)
901− '='
902−
903− > (tis [[1 1] "="])
904− [p=[p=1 q=2] q=[~ [p=~~~3d. q=[p=[p=1 q=2] q=""]]]]
905−
906− > (tis [[1 1] "|="])
907− [p=[p=1 q=1] q=~]
657+> (scan "=" tis)
658+'='
908659```
909660
910661---
@@ -918,20 +669,14 @@ Parses ASCII character 63, the question mark.
918669#### Source
919670
920671```hoon
921− ++ wut (just '?')
672+++ wut (just '?')
922673```
923674
924675#### Examples
925676
926677```
927− > (scan "?" wut)
928− '?'
929−
930− > (wut [[1 1] "?"])
931− [p=[p=1 q=2] q=[~ [p=~~~3f. q=[p=[p=1 q=2] q=""]]]]
932−
933− > (wut [[1 1] ".?"])
934− [p=[p=1 q=1] q=~]
678+> (scan "?" wut)
679+'?'
935680```
936681
937682---
@@ -945,20 +690,14 @@ Parses ASCII character 33, the exclamation point zap.
945690#### Source
946691
947692```hoon
948− ++ zap (just '!')
693+++ zap (just '!')
949694```
950695
951696#### Examples
952697
953698```
954− > (scan "!" zap)
955− '!'
956−
957− > (zap [[1 1] "!"])
958− [p=[p=1 q=2] q=[~ [p=~~~21. q=[p=[p=1 q=2] q=""]]]]
959−
960− > (zap [[1 1] "?!"])
961− [p=[p=1 q=1] q=~]
699+> (scan "!" zap)
700+'!'
962701```
963702
964703---
content/docs/hoon/reference/stdlib/4i.md+422−388
@@ -13,20 +13,20 @@ Parse alphabetic characters, both upper and lowercase.
1313#### Source
1414
1515```hoon
16− ++ alf ;~(pose low hig) :: alphabetic
16+++ alf ;~(pose low hig)
1717```
1818
1919#### Examples
2020
2121```
22− > (scan "a" alf)
23− ~~a
22+> (scan "a" alf)
23+'a'
2424
25− > (scan "A" alf)
26− ~~~41.
25+> (scan "A" alf)
26+'A'
2727
28− > (scan "AaBbCc" (star alf))
29− "AaBbCc"
28+> `tape`(scan "AaBbCc" (star alf))
29+"AaBbCc"
3030```
3131
3232---
@@ -40,20 +40,17 @@ Parse alphanumeric characters - both alphabetic characters and numbers.
4040#### Source
4141
4242```hoon
43− ++ aln ;~(pose low hig nud) :: alphanumeric
43+++ aln ;~(pose low hig nud)
4444```
4545
4646#### Examples
4747
4848```
49− > (scan "0" aln)
50− ~~0
49+> (scan "0" aln)
50+'0'
5151
52− > (scan "alf42" (star aln))
53− "alf42"
54−
55− > (scan "0123456789abcdef" (star aln))
56− "0123456789abcdef"
52+> `tape`(scan "alf42" (star aln))
53+"alf42"
5754```
5855
5956---
@@ -67,20 +64,20 @@ Parse alphanumeric strings and hep, "-".
6764#### Source
6865
6966```hoon
70− ++ alp ;~(pose low hig nud hep) :: alphanumeric and -
67+++ alp ;~(pose low hig nud hep)
7168```
7269
7370#### Examples
7471
7572```
76− > (scan "7" alp)
77− ~~7
73+> (scan "7" alp)
74+'7'
7875
79− > (scan "s" alp)
80− ~~s
76+> (scan "s" alp)
77+'s'
8178
82− > (scan "123abc-" (star alp))
83− "123abc-"
79+> `tape`(scan "123abc-" (star alp))
80+"123abc-"
8481```
8582
8683---
@@ -94,17 +91,17 @@ Parse the hep and lus axis syntax.
9491#### Source
9592
9693```hoon
97− ++ bet ;~(pose (cold 2 hep) (cold 3 lus)) :: axis syntax - +
94+++ bet ;~(pose (cold 2 hep) (cold 3 lus))
9895```
9996
10097#### Examples
10198
10299```
103− > (scan "-" bet)
104− 2
100+> (scan "-" bet)
101+2
105102
106− > (scan "+" bet)
107− 3
103+> (scan "+" bet)
104+3
108105```
109106
110107---
@@ -118,23 +115,23 @@ Parse a tape of binary (0s and 1s) and produce its atomic representation.
118115#### Source
119116
120117```hoon
121− ++ bin (bass 2 (most gon but)) :: binary to atom
118+++ bin (bass 2 (most gon but))
122119```
123120
124121#### Examples
125122
126123```
127− > (scan "0000" bin)
128− 0
124+> (scan "0000" bin)
125+0
129126
130− > (scan "0001" bin)
131− 1
127+> (scan "0001" bin)
128+1
132129
133− > (scan "0010" bin)
134− 2
130+> (scan "0010" bin)
131+2
135132
136− > (scan "100000001111" bin)
137− 2.063
133+> (scan "100000001111" bin)
134+2.063
138135```
139136
140137---
@@ -148,22 +145,25 @@ Parse a single binary digit.
148145#### Source
149146
150147```hoon
151− ++ but (cook |=(a=@ (sub a '0')) (shim '0' '1')) :: binary digit
148+++ but (cook |=(a=@ (sub a '0')) (shim '0' '1'))
152149```
153150
154151#### Examples
155152
156153```
157− > (scan "0" but)
158− 0
159− > (scan "1" but)
160− 1
161− > (scan "01" but)
162− ! {1 2}
163− ! 'syntax-error'
164− ! exit
165− > (scan "01" (star but))
166− ~[0 1]
154+> (scan "0" but)
155+0
156+
157+> (scan "1" but)
158+1
159+
160+> (scan "01" but)
161+! {1 2}
162+! 'syntax-error'
163+! exit
164+
165+> (scan "01" (star but))
166+~[0 1]
167167```
168168
169169---
@@ -177,22 +177,22 @@ Parse a single octal digit.
177177#### Source
178178
179179```hoon
180− ++ cit (cook |=(a=@ (sub a '0')) (shim '0' '7')) :: octal digit
180+++ cit (cook |=(a=@ (sub a '0')) (shim '0' '7'))
181181```
182182
183183#### Examples
184184
185185```
186− > (scan "1" cit)
187− 1
188− > (scan "7" cit)
189− 7
190− > (scan "8" cit)
191− ! {1 1}
192− ! 'syntax-error'
193− ! exit
194− > (scan "60" (star cit))
195− ~[6 0]
186+> (scan "1" cit)
187+1
188+> (scan "7" cit)
189+7
190+> (scan "8" cit)
191+! {1 1}
192+! 'syntax-error'
193+! exit
194+> (scan "60" (star cit))
195+~[6 0]
196196```
197197
198198---
@@ -206,20 +206,23 @@ Parse a decimal number to an atom.
206206#### Source
207207
208208```hoon
209− ++ dem (bass 10 (most gon dit)) :: decimal to atom
209+++ dem (bass 10 (most gon dit))
210210```
211211
212212#### Examples
213213
214214```
215− > (scan "7" dem)
216− 7
217− > (scan "42" dem)
218− 42
219− > (scan "150000000" dem)
220− 150.000.000
221− > (scan "12456" dem)
222− 12.456
215+> (scan "7" dem)
216+7
217+
218+> (scan "42" dem)
219+42
220+
221+> (scan "150000000" dem)
222+150.000.000
223+
224+> (scan "12456" dem)
225+12.456
223226```
224227
225228---
@@ -233,18 +236,20 @@ Parse a single decimal digit.
233236#### Source
234237
235238```hoon
236− ++ dit (cook |=(a=@ (sub a '0')) (shim '0' '9')) :: decimal digit
239+++ dit (cook |=(a=@ (sub a '0')) (shim '0' '9'))
237240```
238241
239242#### Examples
240243
241244```
242− > (scan "7" dit)
243− 7
244− > (scan "42" (star dit))
245− ~[4 2]
246− > (scan "26000" (star dit))
247− ~[2 6 0 0 0]
245+> (scan "7" dit)
246+7
247+
248+> (scan "42" (star dit))
249+~[4 2]
250+
251+> (scan "26000" (star dit))
252+~[2 6 0 0 0]
248253```
249254
250255---
@@ -258,18 +263,41 @@ Dot followed by an optional gap, used with numbers.
258263#### Source
259264
260265```hoon
261− ++ dog ;~(plug dot gay) ::
266+++ dog ;~(plug dot gay)
267+```
268+
269+#### Examples
270+
271+```
272+> (scan "." dog)
273+['.' ~]
274+
275+> (scan "a. " ;~(pfix alf dog))
276+['.' ~]
277+```
278+
279+---
280+
281+## `++dof`
282+
283+`-` optional gap
284+
285+Hep followed by an optional gap, used with `@p` & `@q` syntax.
286+
287+#### Source
288+
289+```hoon
290+++ dof ;~(plug hep gay)
262291```
263292
264293#### Examples
265294
266295```
267− > 1.234.703
268− 703
269− 1.234.703
296+> (scan "-" dof)
297+['-' ~]
270298
271− > (scan "a. " ;~(pfix alf dog))
272− [~~~. ~]
299+> (scan "- " dof)
300+['-' ~]
273301```
274302
275303---
@@ -283,21 +311,17 @@ Phonetic base phrase separator
283311#### Source
284312
285313```hoon
286− ++ doh ;~(plug ;~(plug hep hep) gay) ::
314+++ doh ;~(plug ;~(plug hep hep) gay)
287315```
288316
289317#### Examples
290318
291319```
292− /> ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
293− ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
294− /> ~nopfel-botduc-nilnev-dolfyn--
295− haspub-natlun-lodmur-holtyd
296− ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
297− > (scan "--" doh)
298− [[~~- ~~-] ~]
299− > (scan "-- " doh)
300− [[~~- ~~-] ~]
320+> (scan "--" doh)
321+[['-' '-'] ~]
322+
323+> (scan "-- " doh)
324+[['-' '-'] ~]
301325```
302326
303327---
@@ -311,16 +335,14 @@ Parse phep, `--`, to null, `~`.
311335#### Source
312336
313337```hoon
314− ++ dun (cold ~ ;~(plug hep hep)) :: -- (phep) to ~
338+++ dun (cold ~ ;~(plug hep hep))
315339```
316340
317341#### Examples
318342
319343```
320− > (scan "--" dun)
321− ~
322− > (dun [[1 1] "--"])
323− [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=""]]]]
344+> (scan "--" dun)
345+~
324346```
325347
326348---
@@ -334,16 +356,14 @@ Parse stet, `==`, to null `~`.
334356#### Source
335357
336358```hoon
337− ++ duz (cold ~ ;~(plug tis tis)) :: == (stet) to ~
359+++ duz (cold ~ ;~(plug tis tis))
338360```
339361
340362#### Examples
341363
342364```
343− > (scan "==" duz)
344− ~
345− > (duz [[1 1] "== |=..."])
346− [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=" |=..."]]]]
365+> (scan "==" duz)
366+~
347367```
348368
349369---
@@ -357,30 +377,14 @@ Whitespace component, either newline or space.
357377#### Source
358378
359379```hoon
360− ++ gah (mask [`@`10 ' ' ~]) :: newline or ace
380+++ gah (mask [`@`10 ' ' ~])
361381```
362382
363383#### Examples
364384
365385```
366− /> ^- * :: show spaces
367− """
368− -
369− -
370− -
371− """
372− [32 32 32 45 10 32 45 10 32 32 45 0]
373− /> ^- *
374− """
375−
376− """
377− [32 32 32 10 32 10 32 32 0]
378− /> ^- (list ,@)
379− %- scan :_ (star gah)
380− """
381−
382− """
383− ~[32 32 32 10 32 10 32 32]
386+> `tape`(scan " \0a \0a" (star gah))
387+" \0a \0a"
384388```
385389
386390---
@@ -394,7 +398,17 @@ Separates tall runes
394398#### Source
395399
396400```hoon
397− ++ gap (cold ~ ;~(plug gaq (star ;~(pose vul gah)))) :: plural whitespace
401+++ gap (cold ~ ;~(plug gaq (star ;~(pose vul gah))))
402+```
403+
404+#### Examples
405+
406+```
407+> `tape`(scan " \0a \0a" gap)
408+""
409+
410+> (scan "\0a \0a XYZ" ;~(pfix gap (jest 'XYZ')))
411+'XYZ'
398412```
399413
400414---
@@ -408,11 +422,21 @@ Two spaces, a newline, or comment.
408422#### Source
409423
410424```hoon
411− ++ gaq ;~ pose :: end of line
412− (just `@`10)
413− ;~(plug gah ;~(pose gah vul))
414− vul
415− ==
425+++ gaq ;~ pose
426+ (just `@`10)
427+ ;~(plug gah ;~(pose gah vul))
428+ vul
429+ ==
430+```
431+
432+#### Examples
433+
434+```
435+> (scan "123\0a" ;~(sfix dem gaq))
436+123
437+
438+> (scan "123 :: foo\0a" ;~(sfix dem gaq))
439+123
416440```
417441
418442---
@@ -426,7 +450,20 @@ Terran whitespace.
426450#### Source
427451
428452```hoon
429− ++ gaw (cold ~ (star ;~(pose vul gah))) :: classic white
453+++ gaw (cold ~ (star ;~(pose vul gah)))
454+```
455+
456+#### Examples
457+
458+```
459+> (scan " \0a :: foo \0a" gaw)
460+~
461+
462+> (scan " " gaw)
463+~
464+
465+> (scan "\0a" gaw)
466+~
430467```
431468
432469---
@@ -440,7 +477,23 @@ Optional gap.
440477#### Source
441478
442479```hoon
443− ++ gay ;~(pose gap (easy ~)) ::
480+++ gay ;~(pose gap (easy ~))
481+```
482+
483+#### Examples
484+
485+```
486+> (scan " " gay)
487+~
488+
489+> (scan " " gay)
490+~
491+
492+> (scan "\0a" gay)
493+~
494+
495+> (scan "" gay)
496+~
444497```
445498
446499---
@@ -454,17 +507,18 @@ Parse long numbers - Numbers which wrap around the shell with the line
454507#### Source
455508
456509```hoon
457− ++ gon ;~(pose ;~(plug bas gay fas) (easy ~)) :: long numbers \ /
510+++ gon ;~(pose ;~(plug bas gay fas) (easy ~))
458511```
459512
460513#### Examples
461514
462515```
463− > (scan "\\/" gon)
464− [~~~5c. ~ ~~~2f.]
516+> 'abc\
517+ /def'
518+'abcdef'
465519
466− > (gon [[1 1] "\\/"])
467− [p=[p=1 q=3] q=[~ u=[p=[~~~5c. ~ ~~~2f.] q=[p=[p=1 q=3] q=""]]]]
520+> (scan "\\\0a/" gon)
521+['\\' ~ '/']
468522```
469523
470524---
@@ -478,17 +532,17 @@ Parse the axis gal and gar axis syntax.
478532#### Source
479533
480534```hoon
481− ++ gul ;~(pose (cold 2 gal) (cold 3 gar)) :: axis syntax < >
535+++ gul ;~(pose (cold 2 gal) (cold 3 gar))
482536```
483537
484538#### Examples
485539
486540```
487− > (scan "<" gul)
488− 2
541+> (scan "<" gul)
542+2
489543
490− > (scan ">" gul)
491− 3
544+> (scan ">" gul)
545+3
492546```
493547
494548---
@@ -502,26 +556,32 @@ Parse any hexadecimal number to an atom.
502556#### Source
503557
504558```hoon
505− ++ hex (bass 16 (most gon hit)) :: hex to atom
559+++ hex (bass 16 (most gon hit))
506560```
507561
508562#### Examples
509563
510564```
511− > (scan "a" hex)
512− 10
513− > (scan "A" hex)
514− 10
515− > (scan "2A" hex)
516− 42
517− > (scan "1ee7" hex)
518− 7.911
519− > (scan "1EE7" hex)
520− 7.911
521− > (scan "1EE7F7" hex)
522− 2.025.463
523− > `@ux`(scan "1EE7F7" hex)
524− 0x1e.e7f7
565+> (scan "a" hex)
566+10
567+
568+> (scan "A" hex)
569+10
570+
571+> (scan "2A" hex)
572+42
573+
574+> (scan "1ee7" hex)
575+7.911
576+
577+> (scan "1EE7" hex)
578+7.911
579+
580+> (scan "1EE7F7" hex)
581+2.025.463
582+
583+> `@ux`(scan "1EE7F7" hex)
584+0x1e.e7f7
525585```
526586
527587---
@@ -535,23 +595,17 @@ Parse a single uppercase letter.
535595#### Source
536596
537597```hoon
538− ++ hig (shim 'A' 'Z') :: uppercase
598+++ hig (shim 'A' 'Z')
539599```
540600
541601#### Examples
542602
543603```
544− > (scan "G" hig)
545− ~~~47.
604+> (scan "G" hig)
605+'G'
546606
547− > `cord`(scan "G" hig)
548− 'G'
549−
550− > (scan "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (star hig))
551− "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
552−
553− > (hig [[1 1] "G"])
554− [p=[p=1 q=2] q=[~ [p=~~~47. q=[p=[p=1 q=2] q=""]]]]
607+> (scan "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (star hig))
608+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
555609```
556610
557611---
@@ -565,24 +619,24 @@ Parse a single hexadecimal digit.
565619#### Source
566620
567621```hoon
568− ++ hit ;~ pose :: hex digits
569− dit
570− (cook |=(a=char (sub a 87)) (shim 'a' 'f'))
571− (cook |=(a=char (sub a 55)) (shim 'A' 'F'))
572− ==
622+++ hit ;~ pose
623+ dit
624+ (cook |=(a=char (sub a 87)) (shim 'a' 'f'))
625+ (cook |=(a=char (sub a 55)) (shim 'A' 'F'))
626+ ==
573627```
574628
575629#### Examples
576630
577631```
578− > (scan "a" hit)
579− 10
580− > (scan "A" hit)
581− 10
582− > (hit [[1 1] "a"])
583− [p=[p=1 q=2] q=[~ [p=10 q=[p=[p=1 q=2] q=""]]]]
584− > (scan "2A" (star hit))
585− ~[2 10]
632+> (scan "a" hit)
633+10
634+
635+> (scan "A" hit)
636+10
637+
638+> (scan "2A" (star hit))
639+~[2 10]
586640```
587641
588642---
@@ -591,59 +645,56 @@ Parse a single hexadecimal digit.
591645
592646Indentation block
593647
594−Apply `++rule` to indented block starting at current column number, omitting
648+Apply `rule` to indented block starting at current column number, omitting
595649the leading whitespace.
596650
597651#### Accepts
598652
599−`sef` is a `++rule`
653+`sef` is a `rule`
600654
601655#### Produces
602656
603−A `++rule`.
657+A `rule`.
604658
605659#### Source
606660
607661```hoon
608− ++ inde |* sef/rule :: indentation block
609− |= nail ^+ (sef)
610− =+ [har tap]=[p q]:+<
611− =+ lev=(fil 3 (dec q.har) ' ')
612− =+ eol=(just `@t`10)
613− =+ =- roq=((star ;~(pose prn ;~(sfix eol (jest lev)) -)) har tap)
614− ;~(simu ;~(plug eol eol) eol)
615− ?~ q.roq roq
616− =+ vex=(sef har(q 1) p.u.q.roq)
617− =+ fur=p.vex(q (add (dec q.har) q.p.vex))
618− ?~ q.vex vex(p fur)
619− =- vex(p fur, u.q -)
620− :+ &3.vex
621− &4.vex(q.p (add (dec q.har) q.p.&4.vex))
622− =+ res=|4.vex
623− |- ?~ res |4.roq
624− ?. =(10 -.res) [-.res $(res +.res)]
625− (welp [`@t`10 (trip lev)] $(res +.res))
626− ::
662+++ iny
663+ |* sef=rule
664+ |= nail ^+ (sef)
665+ =+ [har tap]=[p q]:+<
666+ =+ lev=(fil 3 (dec q.har) ' ')
667+ =+ eol=(just `@t`10)
668+ =+ =- roq=((star ;~(pose prn ;~(sfix eol (jest lev)) -)) har tap)
669+ ;~(simu ;~(plug eol eol) eol)
670+ ?~ q.roq roq
671+ =+ vex=(sef har(q 1) p.u.q.roq)
672+ =+ fur=p.vex(q (add (dec q.har) q.p.vex))
673+ ?~ q.vex vex(p fur)
674+ =- vex(p fur, u.q -)
675+ :+ &3.vex
676+ &4.vex(q.p (add (dec q.har) q.p.&4.vex))
677+ =+ res=|4.vex
678+ |- ?~ res |4.roq
679+ ?. =(10 -.res) [-.res $(res +.res)]
680+ (welp [`@t`10 (trip lev)] $(res +.res))
627681```
628682
629683#### Examples
630684
631685```
632− > (scan "abc" (iny (star ;~(pose prn (just `@`10)))))
633− "abc"
634− > (scan "abc" (star ;~(pose prn (just `@`10))))
635− "abc"
636− > (scan " abc\0ade" ;~(pfix ace ace (star ;~(pose prn (just `@`10)))))
637− "abc
638− de"
639− > (scan " abc\0ade" ;~(pfix ace ace (iny (star ;~(pose prn (just `@`10))))))
640− ! {1 6}
641− ! exit
642− > (scan " abc\0a de" ;~(pfix ace ace (iny (star ;~(pose prn (just `@`10))))))
643− "abc
644− de"
686+> `tape`(scan " foo\0a bar" ;~(pfix ace ace ace (iny (star ;~(pose prn (just '\0a'))))))
687+"foo\0abar"
645688```
646689
690+#### Discussion
691+
692+Note the amount of indentation whitespace to be stripped from the beginning of
693+each line is determined by the value of `q` (the column) in the `hair` when
694+`++iny` is first called. This means something like the `pfix` expression in the
695+example above is necessary to set the level of indentation. Additionally, the
696+`rule` given to `++iny` must consume the whole line including the line ending.
697+
647698---
648699
649700## `++low`
@@ -655,20 +706,14 @@ Parse a single lowercase letter.
655706#### Source
656707
657708```hoon
658− ++ low (shim 'a' 'z') :: lowercase
709+++ low (shim 'a' 'z')
659710```
660711
661712#### Examples
662713
663714```
664− > (scan "g" low)
665− ~~g
666− > `cord`(scan "g" low)
667− 'g'
668− > (scan "abcdefghijklmnopqrstuvwxyz" (star low))
669− "abcdefghijklmnopqrstuvwxyz"
670− > (low [[1 1] "g"])
671− [p=[p=1 q=2] q=[~ [p=~~g q=[p=[p=1 q=2] q=""]]]]
715+> (scan "g" low)
716+'g'
672717```
673718
674719---
@@ -682,44 +727,40 @@ Parse a hexbyte.
682727#### Source
683728
684729```hoon
685− ++ mes %+ cook :: hexbyte
686− |=({a/@ b/@} (add (mul 16 a) b))
687− ;~(plug hit hit)
730+++ mes %+ cook
731+ |=({a/@ b/@} (add (mul 16 a) b))
732+ ;~(plug hit hit)
688733```
689734
690735#### Examples
691736
692737```
693− > (scan "2A" mes)
694− 42
695− > (mes [[1 1] "2A"])
696− [p=[p=1 q=3] q=[~ u=[p=42 q=[p=[p=1 q=3] q=""]]]]
697− > (scan "42" mes)
698− 66
738+> (scan "2A" mes)
739+42
740+
741+> (scan "42" mes)
742+66
699743```
700744
701745---
702746
703747## `++nix`
704748
705−Letters and `-`
749+Letters and underscore
706750
707−Parse Letters and `-`.
751+Parse Letters and `_`.
708752
709753#### Source
710754
711755```hoon
712− ++ nix (boss 256 (star ;~(pose aln cab))) ::
756+++ nix (boss 256 (star ;~(pose aln cab)))
713757```
714758
715759#### Examples
716760
717761```
718− > (scan "as_me" nix)
719− q=435.626.668.897
720−
721− > `@t`(scan "as_me" nix)
722− 'as_me'
762+> `@t`(scan "as_me" nix)
763+'as_me'
723764```
724765
725766---
@@ -733,20 +774,17 @@ Parse a numeric character - A number.
733774#### Source
734775
735776```hoon
736− ++ nud (shim '0' '9') :: numeric
777+++ nud (shim '0' '9')
737778```
738779
739780#### Examples
740781
741782```
742− > (scan "0" nud)
743− ~~0
744− > (scan "7" nud)
745− ~~7
746− > (nud [[1 1] "1"])
747− [p=[p=1 q=2] q=[~ [p=~~1 q=[p=[p=1 q=2] q=""]]]]
748− > (scan "0123456789" (star nud))
749− "0123456789"
783+> (scan "0" nud)
784+'0'
785+
786+> (scan "7" nud)
787+'7'
750788```
751789
752790---
@@ -760,57 +798,51 @@ Parse any printable character.
760798#### Source
761799
762800```hoon
763− ++ prn ;~(less (just `@`127) (shim 32 256))
801+++ prn ;~(less (just `@`127) (shim 32 256))
764802```
765803
766804#### Examples
767805
768806```
769− > (scan "h" prn)
770− ~~h
771− > (scan "!" prn)
772− ~~~21.
773− > (scan "\01" prn)
774− ! {1 1}
775− ! exit
807+> (scan "h" prn)
808+'h'
809+
810+> (scan "!" prn)
811+'!'
812+
813+> (scan "\01" prn)
814+! {1 1}
815+! exit
776816```
777817
778818---
779819
780−## `++qit`
820+## `++qat`
781821
782−Chars in cord
822+Chars in blockcord
783823
784−Parse an individual character to its cord atom representation.
824+Parse a single character contained in a mult-line cord block.
785825
786826#### Source
787827
788828```hoon
789− ++ qit ;~ pose :: chars in a cord
790− ;~(less bas soq prn)
791− ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
792− ==
829+++ qat ;~ pose
830+ prn
831+ ;~(less ;~(plug (just `@`10) soz) (just `@`10))
832+ ==
793833```
794834
795835#### Examples
796836
797837```
798− > (scan "%" qit)
799− 37
800− > `@t`(scan "%" qit)
801− '%'
802− > (scan "0" qit)
803− 48
804− > (scan "E" qit)
805− 69
806− > (scan "a" qit)
807− 97
808− > (scan "\\0a" qit)
809− 10
810− > `@ux`(scan "\\0a" qit)
811− 0xa
812− > (scan "cord" (star qit))
813− ~[99 111 114 100]
838+> ^- tape
839+ %+ scan
840+ "'''\0aabc\0adef\0aghi\0a'''"
841+ %+ ifix
842+ :- ;~(plug soz (just `@`10))
843+ ;~(plug (just `@`10) soz)
844+ (star qat)
845+"abc\0adef\0aghi"
814846```
815847
816848---
@@ -819,36 +851,29 @@ Parse an individual character to its cord atom representation.
819851
820852Chars in cord
821853
822−Parse an individual character to its cord atom representation.
854+Parse an individual character to its cord atom representation. Escaped
855+characters are converted to the value they represent.
823856
824857#### Source
825858
826859```hoon
827− ++ qit ;~ pose :: chars in a cord
828− ;~(less bas soq prn)
829− ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
830− ==
860+++ qit ;~ pose :: chars in a cord
861+ ;~(less bas soq prn)
862+ ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
863+ ==
831864```
832865
833866#### Examples
834867
835868```
836− > (scan "%" qit)
837− 37
838− > `@t`(scan "%" qit)
839− '%'
840− > (scan "0" qit)
841− 48
842− > (scan "E" qit)
843− 69
844− > (scan "a" qit)
845− 97
846− > (scan "\\0a" qit)
847− 10
848− > `@ux`(scan "\\0a" qit)
849− 0xa
850− > (scan "cord" (star qit))
851− ~[99 111 114 100]
869+> (scan "%" qit)
870+'%'
871+
872+> `tape`(scan "cord" (star qit))
873+"cord"
874+
875+> `tape`(scan "\\0a" (star qit))
876+"\0a"
852877```
853878
854879---
@@ -863,33 +888,28 @@ quote (aka triple-soq) cord, between which must be in an indented block.
863888#### Source
864889
865890```hoon
866− ++ qut ;~ pose :: cord
867− ;~ less soqs
868− (ifix [soq soq] (boss 256 (more gon qit)))
869− ==
870− %- inde %+ ifix
871− :- ;~ plug soqs
872− ;~(pose ;~(plug (plus ace) vul) (just '\0a'))
873− ==
874− ;~(plug (just '\0a') soqs)
875− (boss 256 (star qat))
891+++ qut ;~ simu soq
892+ ;~ pose
893+ ;~ less soz
894+ (ifix [soq soq] (boss 256 (more gon qit)))
876895 ==
877− ::
896+ =+ hed=;~(pose ;~(plug (plus ace) vul) (just '\0a'))
897+ %- iny %+ ifix
898+ :- ;~(plug soz hed)
899+ ;~(plug (just '\0a') soz)
900+ (boss 256 (star qat))
901+ ==
902+ ==
878903```
879904
880905#### Examples
881906
882907```
883− > (scan "'cord'" qut)
884− q=1.685.221.219
885− > 'cord'
886− 'cord'
887− > `@ud`'cord'
888− 1.685.221.219
889− > '''
890− Heredoc isn't prohibited from containing quotes
891− '''
892− 'Heredoc isn't prohibited from containing quotes'
908+> `@t`(scan "'cord'" qut)
909+'cord'
910+
911+> `@t`(scan "'''\0aabc\0adef\0a'''" qut)
912+'abc\0adef'
893913```
894914
895915---
@@ -903,17 +923,14 @@ Parse a triple-single quote, used for multiline strings.
903923#### Source
904924
905925```hoon
906− ++ soz ;~(plug soq soq soq) :: delimiting '''
926+++ soz ;~(plug soq soq soq)
907927```
908928
909929#### Examples
910930
911931```
912− > (scan "'''" soz)
913− [~~~27. ~~~27. ~~~27.]
914− > (rash '"""' soz)
915− ! {1 1}
916− ! exit
932+> (scan "'''" soz)
933+['\'' '\'' '\'']
917934```
918935
919936---
@@ -922,27 +939,46 @@ Parse a triple-single quote, used for multiline strings.
922939
923940Term
924941
925−A term: a letter(lowercase), followed by letters, numbers, or `-`.
942+A term: a lowercase letter, followed by letters, numbers, or `-`.
926943
927944#### Source
928945
929946```hoon
930− ++ sym
931− %+ cook
932− |=(a=tape (rap 3 ^-((list ,@) a)))
933− ;~(plug low (star ;~(pose nud low hep)))
934− ::
947+++ sym
948+ %+ cook
949+ |=(a=tape (rap 3 ^-((list @) a)))
950+ ;~(plug low (star ;~(pose nud low hep)))
935951```
936952
937953#### Examples
938954
939955```
940− > (scan "sam-2" sym)
941− 215.510.507.891
942− > `@t`(scan "sam-2" sym)
943− 'sam-2'
944− > (scan "sym" sym)
945− 7.174.515
956+> `term`(scan "sam-2" sym)
957+%sam-2
958+```
959+
960+---
961+
962+## `++mixed-case-symbol`
963+
964+Mixed-case term
965+
966+The same as [`++sym`](#sym) but allowing uppercase letters.
967+
968+#### Source
969+
970+```hoon
971+++ mixed-case-symbol
972+ %+ cook
973+ |=(a=tape (rap 3 ^-((list @) a)))
974+ ;~(plug alf (star alp))
975+```
976+
977+#### Examples
978+
979+```
980+> `term`(scan "sAm-2" mixed-case-symbol)
981+%sAm-2
946982```
947983
948984---
@@ -956,34 +992,28 @@ Axis syntax parser
956992#### Source
957993
958994```hoon
959− ++ ven ;~ (comp |=({a/@ b/@} (peg a b))) :: +>- axis syntax
960− bet
961− =+ hom=`?`|
962− |= tub/nail
963− ^- (like axis)
964− =+ vex=?:(hom (bet tub) (gul tub))
965− ?~ q.vex
966− [p.tub [~ 1 tub]]
967− =+ wag=$(p.tub p.vex, hom !hom, tub q.u.q.vex)
968− ?> ?=(^ q.wag)
969− [p.wag [~ (peg p.u.q.vex p.u.q.wag) q.u.q.wag]]
970− ==
995+++ ven ;~ (comp |=([a=@ b=@] (peg a b)))
996+ bet
997+ =+ hom=`?`|
998+ |= tub=nail
999+ ^- (like @)
1000+ =+ vex=?:(hom (bet tub) (gul tub))
1001+ ?~ q.vex
1002+ [p.tub [~ 1 tub]]
1003+ =+ wag=$(p.tub p.vex, hom !hom, tub q.u.q.vex)
1004+ ?> ?=(^ q.wag)
1005+ [p.wag [~ (peg p.u.q.vex p.u.q.wag) q.u.q.wag]]
1006+ ==
9711007```
9721008
9731009#### Examples
9741010
9751011```
976− ~zod/arvo=/hoon/hoon> (scan "->+" ven)
977− 11
1012+> (scan "->+" ven)
1013+11
9781014
979− ~zod/arvo=/hoon/hoon> `@ub`(scan "->+" ven)
980− 0b1011
981−
982− ~zod/arvo=/hoon/hoon> (peg (scan "->" ven) (scan "+" ven))
983− 11
984−
985− ~zod/arvo=/hoon/hoon> ->+:[[1 2 [3 4]] 5]
986− [3 4]
1015+> (scan "->+<-" ven)
1016+44
9871017```
9881018
9891019---
@@ -997,27 +1027,30 @@ Parse a standard base64 digit.
9971027#### Source
9981028
9991029```hoon
1000− ++ vit :: base64 digit
1001− ;~ pose
1002− (cook |=(a/@ (sub a 65)) (shim 'A' 'Z'))
1003− (cook |=(a/@ (sub a 71)) (shim 'a' 'z'))
1004− (cook |=(a/@ (add a 4)) (shim '0' '9'))
1005− (cold 62 (just '-'))
1006− (cold 63 (just '+'))
1007− ==
1030+++ vit
1031+ ;~ pose
1032+ (cook |=(a=@ (sub a 65)) (shim 'A' 'Z'))
1033+ (cook |=(a=@ (sub a 71)) (shim 'a' 'z'))
1034+ (cook |=(a=@ (add a 4)) (shim '0' '9'))
1035+ (cold 62 (just '-'))
1036+ (cold 63 (just '+'))
1037+ ==
10081038```
10091039
10101040#### Examples
10111041
10121042```
1013− ~zod/arvo=/hoon/hoon> (scan "C" vit)
1014− 2
1015− ~zod/arvo=/hoon/hoon> (scan "c" vit)
1016− 28
1017− ~zod/arvo=/hoon/hoon> (scan "2" vit)
1018− 54
1019− ~zod/arvo=/hoon/hoon> (scan "-" vit)
1020− 62
1043+> (scan "C" vit)
1044+2
1045+
1046+> (scan "c" vit)
1047+28
1048+
1049+> (scan "2" vit)
1050+54
1051+
1052+> (scan "-" vit)
1053+62
10211054```
10221055
10231056---
@@ -1026,27 +1059,28 @@ Parse a standard base64 digit.
10261059
10271060Comments to null
10281061
1062+Parse comments and produce a null. Note that a comment must be ended
1063+with a newline character.
1064+
10291065#### Source
10301066
10311067```hoon
1032− ++ vul %+ cold ~ :: comments
1033− ;~ plug col col
1034− (star prn)
1035− (just `@`10)
1036− ==
1068+++ vul %+ cold ~
1069+ ;~ plug col col
1070+ (star prn)
1071+ (just `@`10)
1072+ ==
10371073```
10381074
1039−Parse comments and produce a null. Note that a comment must be ended
1040−with a newline character.
1041−
10421075#### Examples
10431076
10441077```
1045− > (scan "::this is a comment \0a" vul)
1046− ~
1047− > (scan "::this is a comment " vul)
1048− ! {1 21}
1049− ! exit
1078+> (scan "::this is a comment \0a" vul)
1079+~
1080+
1081+> (scan "::this is a comment " vul)
1082+! {1 21}
1083+! exit
10501084```
10511085
10521086---
content/docs/hoon/reference/stdlib/4j.md+773−631
@@ -13,15 +13,15 @@ A core containing numeric parser primitives.
1313#### Source
1414
1515```hoon
16− ++ ab
17− |%
16+++ ab
17+ |%
1818```
1919
2020#### Examples
2121
2222```
23− > ab
24− <36.ecc 414.gly 100.xkc 1.ypj %164>
23+> ab
24+<36.ecc 414.gly 100.xkc 1.ypj %164>
2525```
2626
2727---
@@ -30,330 +30,381 @@ A core containing numeric parser primitives.
3030
3131Parse hex pair
3232
33−Parsing `++rule`. Parses a pair of base-16 digits. Used in escapes.
34−
35−#### Accepts
36−
37−XX
38−
39−#### Produces
40−
41−A an atom. XX
33+Parsing `rule`. Parses a pair of base-16 digits. Used in escapes.
4234
4335#### Source
4436
4537```hoon
46− ++ bix (bass 16 (stun [2 2] six))
38+++ bix (bass 16 (stun [2 2] six))
4739```
4840
4941#### Examples
5042
5143```
52− > (scan "07" bix:ab)
53− q=7
54− > (scan "51" bix:ab)
55− q=81
56− > (scan "a3" bix:ab)
57− q=163
44+> (scan "07" bix:ab)
45+7
46+> (scan "51" bix:ab)
47+81
48+> (scan "a3" bix:ab)
49+163
5850```
5951
6052---
6153
62−### `++hif:ab`
54+### `++fem:ab`
6355
64−Parse phonetic pair
56+Parse base58check char
6557
66−Parsing `++rule`. Parses an atom of aura `@pE`, a phrase of two bytes
67−encoded phonetically.
58+Parse a single base58check character.
6859
69−#### Accepts
60+#### Source
7061
71−XX
62+```hoon
63+++ fem (sear |=(a=@ (cha:fa a)) aln)
64+```
7265
73−#### Produces
66+#### Examples
7467
75−An atom.
68+```
69+> (scan "6" fem:ab)
70+5
71+
72+> (scan "Z" fem:ab)
73+32
74+
75+> (scan "j" fem:ab)
76+42
77+```
78+
79+---
80+
81+### `++haf:ab`
82+
83+Parse non-doz phonetic pair
84+
85+Parsing `rule`. Parses an atom of aura `@pE`, a phrase of two bytes encoded
86+phonetically. If the leading syllable is `doz` (`0`), parsing will fail.
7687
7788#### Source
7889
7990```hoon
80− ++ hif (boss 256 ;~(plug tip tiq (easy ~)))
91+++ haf (bass 256 ;~(plug tep tiq (easy ~)))
8192```
8293
8394#### Examples
8495
8596```
86− > (scan "doznec" hif:ab)
87− q=256
88− > (scan "pittyp" hif:ab)
89− q=48.626
97+> `@p`(scan "sampel" haf:ab)
98+~sampel
99+
100+> `@p`(scan "dozpel" haf:ab)
101+{1 4}
102+syntax error
90103```
91104
92105---
93106
94−### `++huf:ab`
107+### `++hef:ab`
95108
96−Parse two phonetic pairs
109+Parse non-dozzod phonetic pair
97110
98−Parsing `++rule`. Parses and unscrambles an atom of aura @pF, a phrase
99−of two two-byte pairs that are encoded (and scrambled) phonetically.
111+Parsing `rule`. Parses an atom of aura `@pE` without leading `~` or `.~`, a
112+phrase of two bytes encoded phonetically. If it's `dozzod`, parsing will fail.
100113
101−#### Accepts
114+#### Source
102115
103−XX
116+```hoon
117+++ hef %+ sear |=(a=@ ?:(=(a 0) ~ (some a)))
118+ %+ bass 256
119+ ;~(plug tip tiq (easy ~))
120+```
104121
105−#### Produces
122+#### Examples
123+
124+```
125+> `@p`(scan "sampel" hef:ab)
126+~sampel
127+
128+> `@p`(scan "dozpel" hef:ab)
129+~pel
106130
107−An atom. XX
131+> `@p`(scan "dozzod" hef:ab)
132+{1 7}
133+syntax error
134+```
135+
136+---
137+
138+### `++hif:ab`
139+
140+Parse phonetic pair
141+
142+Parsing `rule`. Parses an atom of aura `@pE`, without leading `~` or `.~`. A
143+phrase of two bytes encoded phonetically.
108144
109145#### Source
110146
111147```hoon
112− ++ huf %+ cook
113− |=([a/@ b/@] (wred:un ~(zug mu ~(zag mu [a b]))))
114− ;~(plug hif ;~(pfix hep hif))
148+++ hif (boss 256 ;~(plug tip tiq (easy ~)))
115149```
116150
117151#### Examples
118152
119153```
120− > (scan "pittyp-pittyp" huf:ab)
121− 328.203.557
122− > (scan "tasfyn-partyv" huf:ab)
123− 65.792
124− > `@ux`(scan "tasfyn-partyv" huf:ab)
125− 0x1.0100
154+> `@p`(scan "doznec" hif:ab)
155+~nec
156+
157+> `@p`(scan "pittyp" hif:ab)
158+~pittyp
126159```
127160
128161---
129162
130−### `++hyf:ab`
163+### `++hof:ab`
131164
132−Parse 8 phonetic bytes
165+Parse 2-4 @q phonetic pairs
133166
134−Parsing `++rule`. Parses an atom of aura @pG, a phrase of eight of
135−phonetic bytes.
167+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
168+leading `~` or `.~`, of between two and four phrases.
136169
137−#### Accepts
170+#### Source
138171
139−An atom of aura `@pG`
172+```hoon
173+++ hof (bass 0x1.0000 ;~(plug hef (stun [1 3] ;~(pfix hep hif))))
174+```
140175
141−#### Produces
176+#### Example
177+
178+```
179+> `@q`(scan "sampel-palnet" hof:ab)
180+.~sampel-palnet
142181
143−An atom. XX
182+> `@q`(scan "sampel-sampel-palnet" hof:ab)
183+.~sampel-sampel-palnet
184+
185+> `@q`(scan "sampel-sampel-sampel-palnet" hof:ab)
186+.~sampel-sampel-sampel-palnet
187+```
188+
189+---
190+
191+### `++huf:ab`
192+
193+Parse 1-4 @q phonetic pairs
194+
195+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
196+leading `~` or `.~`, of between one and four phrases.
144197
145198#### Source
146199
147200```hoon
148− ++ hyf (bass 0x1.0000.0000 ;~(plug huf ;~(pfix hep huf) (easy ~)))
201+++ huf (bass 0x1.0000 ;~(plug hef (stun [0 3] ;~(pfix hep hif))))
149202```
150203
151204#### Examples
152205
153206```
154− > (scan "sondel-forsut-tillyn-nillyt" hyf:ab)
155− q=365.637.097.828.335.095
156− > `@u`~sondel-forsut-tillyn-nillyt
157− 365.637.097.828.335.095
207+> `@q`(scan "sampel" huf:ab)
208+.~sampel
209+
210+> `@q`(scan "sampel-palnet" huf:ab)
211+.~sampel-palnet
212+
213+> `@q`(scan "sampel-sampel-palnet" huf:ab)
214+.~sampel-sampel-palnet
215+
216+> `@q`(scan "sampel-sampel-sampel-palnet" huf:ab)
217+.~sampel-sampel-sampel-palnet
158218```
159219
160220---
161221
162−### `++pev:ab`
222+### `++hyf:ab`
163223
164−Parse \<= 5 base-32
224+Parse four @q phonetic pairs
165225
166−Parsing `++rule`. Parses up to five base-32 digits without a leading zero.
226+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
227+leading `~` or `.~`, of exactly four phrases.
167228
168−#### Accepts
229+#### Source
169230
170−Up to five @uv (base 64) digits.
231+```hoon
232+++ hyf (bass 0x1.0000 ;~(plug hif (stun [3 3] ;~(pfix hep hif))))
233+```
171234
172−#### Produces
235+#### Examples
173236
174−An atom.
237+```
238+> `@q`(scan "sampel-sampel-sampel-palnet" hyf:ab)
239+.~sampel-sampel-sampel-palnet
240+```
241+
242+---
243+
244+### `++pev:ab`
245+
246+Parse 1-5 @uv base-32 chars
247+
248+Parsing `rule`. Parses one to five `@uv` base-32 digits without the leading `0v`
249+or leading zeros.
175250
176251#### Source
177252
178253```hoon
179− ++ pev (bass 32 ;~(plug sev (stun [0 4] siv)))
254+++ pev (bass 32 ;~(plug sev (stun [0 4] siv)))
180255```
181256
182257#### Examples
183258
184259```
185− > (scan "a" pev:ab)
186− q=10
187− > (scan "290j" pev:ab)
188− q=74.771
189− > (scan "123456" pev:ab)
190− ! {1 6}
191− ! exit
192− > (scan "090j" pev:ab)
193− ~ <syntax error at [1 11]>
260+> `@uv`(scan "du3ja" pev:ab)
261+0vdu3ja
262+
263+> `@uv`(scan "3ja" pev:ab)
264+0v3ja
265+
266+> `@uv`(scan "a" pev:ab)
267+0va
194268```
195269
196270---
197271
198272### `++pew:ab`
199273
200−Parse \<= 5 base-64
274+Parse 1-5 @uw base-64 chars
201275
202−Parsing `++rule`. Parses up to five base-64 digits without a leading zero.
203−
204−#### Accepts
205−
206−Up to five @uw (base 64) digits.
207−
208−#### Produces
276+Parsing `rule`. Parses one to five `@uw` base-64 digits without the leading `0w`
277+or leading zeros.
209278
210279#### Source
211280
212281```hoon
213− ++ pew (bass 64 ;~(plug sew (stun [0 4] siw)))
282+++ pew (bass 64 ;~(plug sew (stun [0 4] siw)))
214283```
215284
216285#### Examples
217286
218287```
219− > (scan "Q" pew:ab)
220− q=52
221− > (scan "aQ~9" pew:ab)
222− q=2.838.473
223− > `@`0waQ~9
224− 2.838.473
225− > (scan "123456" pew:ab)
226− ! {1 6}
227− ! exit
228− > (scan "012345" pew:ab)
229− ! {1 1}
230− ! exit
288+> `@uw`(scan "6U0gP" pew:ab)
289+0w6U0gP
290+
291+> `@uw`(scan "gP" pew:ab)
292+0wgP
293+
294+> `@uw`(scan "P" pew:ab)
295+0wP
231296```
232297
233298---
234299
235300### `++piv:ab`
236301
237−Parse 5 base-32
302+Parse 5 @uv base-32 chars
238303
239−Parsing `++rule`. Parses exactly five base-32 digits.
240−
241−#### Accepts
242−
243−#### Produces
304+Parsing `rule`. Parses exactly five `@uv` base-32 digits without the leading
305+`0v` or leading zeros.
244306
245307#### Source
246308
247309```hoon
248− ++ piv (bass 32 (stun [5 5] siv))
310+++ piv (bass 32 (stun [5 5] siv))
249311```
250312
251313#### Examples
252314
253315```
254− > (scan "10b3l" piv:ab)
255− q=1.059.957
256− > (scan "1" piv:ab)
257− ! {1 2}
258− ! exit
316+> `@uv`(scan "du3ja" piv:ab)
317+0vdu3ja
318+
319+> `@uv`(scan "u3ja" piv:ab)
320+{1 5}
321+syntax error
259322```
260323
261324---
262325
263326### `++piw:ab`
264327
265−Parse 5 base-64
266−
267−Parsing `++rule`. Parses exactly five base-64 digits.
328+Parse 5 @uw base-64 chars
268329
269−#### Accepts
270−
271−#### Produces
330+Parsing `rule`. Parses exactly five `@uw` base-64 digits without the leading
331+`0w` or leading zeros.
272332
273333#### Source
274334
275335```hoon
276− ++ piw (bass 64 (stun [5 5] siw))
336+++ piw (bass 64 (stun [5 5] siw))
277337```
278338
279339#### Examples
280340
281341```
282− > (scan "2C-pZ" piw:ab)
283− q=43.771.517
284− > (scan "2" piv:ab)
285− ! {1 2}
286− ! exit
342+> `@uw`(scan "6U0gP" piw:ab)
343+0w6U0gP
344+
345+> `@uw`(scan "U0gP" piw:ab)
346+{1 5}
347+syntax error
287348```
288349
289350---
290351
291352### `++qeb:ab`
292353
293−Parse \<= 4 binary
294−
295−Parsing `++rule`. Parses a binary number of up to 4 digits in length without
296−a leading zero.
297−
298−#### Accepts
354+Parse 1-4 binary digits
299355
300−#### Produces
356+Parsing `rule`. Parses a binary number of up to 4 digits in length without a
357+leading zero.
301358
302359#### Source
303360
304361```hoon
305− ++ qeb (bass 2 ;~(plug seb (stun [0 3] sib)))
362+++ qeb (bass 2 ;~(plug seb (stun [0 3] sib)))
306363```
307364
308365#### Examples
309366
310367```
311− > (scan "1" qeb:ab)
312− q=1
313− > (scan "101" qeb:ab)
314− q=5
315− > (scan "1111" qeb:ab)
316− q=15
317− > (scan "11111" qeb:ab)
318− ! {1 5}
319− ! exit
320− > (scan "01" qeb:ab)
321− ! {1 1}
322− ! exit
368+> `@ub`(scan "1010" qeb:ab)
369+0b1010
370+
371+> `@ub`(scan "10" qeb:ab)
372+0b10
373+
374+> `@ub`(scan "1" qeb:ab)
375+0b1
376+
377+> `@ub`(scan "0" qeb:ab)
378+{1 1}
379+syntax error
323380```
324381
325382---
326383
327384### `++qex:ab`
328385
329−Parse \<= 4 hex
330−
331−Parsing `++rule`. Parses a hexadecimal number of up to 4 digits in length
332−without a leading zero.
386+Parse 1-4 hex digits
333387
334−#### Accepts
335−
336−#### Produces
388+Parsing `rule`. Parses a hexadecimal number of up to 4 digits in length without
389+a leading zero.
337390
338391#### Source
339392
340393```hoon
341− ++ qex (bass 16 ;~(plug sex (stun [0 3] hit)))
394+++ qex (bass 16 ;~(plug sex (stun [0 3] hit)))
342395```
343396
344397#### Examples
345398
346399```
347− > (scan "ca" qex:ab)
348− q=202
349− > (scan "18ac" qex:ab)
350− q=6.316
351− > (scan "18acc" qex:ab)
352− ! {1 5}
353− ! exit
354− > (scan "08ac" qex:ab)
355− ! {1 1}
356− ! exit
400+> `@ux`(scan "beef" qex:ab)
401+0xbeef
402+
403+> `@ux`(scan "ef" qex:ab)
404+0xef
405+
406+> `@ux`(scan "f" qex:ab)
407+0xf
357408```
358409
359410---
@@ -362,28 +413,26 @@ without a leading zero.
362413
363414Parse 4 binary
364415
365−Parsing `++rule`. Parses exactly four binary digits.
366−
367−#### Accepts
368−
369−#### Produces
416+Parsing `rule`. Parses exactly four binary digits - may have leading zeros.
370417
371418#### Source
372419
373420```hoon
374− ++ qib (bass 2 (stun [4 4] sib))
421+++ qib (bass 2 (stun [4 4] sib))
375422```
376423
377424#### Examples
378425
379426```
380− > (scan "0001" qib:ab)
381− q=1
382− > (scan "0100" qib:ab)
383− q=4
384− > (scan "110" qib:ab)
385− ! {1 4}
386− ! exit
427+> `@ub`(scan "0001" qib:ab)
428+0b1
429+
430+> `@ub`(scan "1001" qib:ab)
431+0b1001
432+
433+> `@ub`(scan "1" qib:ab)
434+{1 2}
435+syntax error
387436```
388437
389438---
@@ -392,28 +441,26 @@ Parsing `++rule`. Parses exactly four binary digits.
392441
393442Parse 4 hex
394443
395−Parsing `++rule`. Parses exactly four hexadecimal digits.
396−
397−#### Accepts
398−
399−#### Produces
444+Parsing `rule`. Parses exactly four hexadecimal digits - may have leading zeros.
400445
401446#### Source
402447
403448```hoon
404− ++ qix (bass 16 (stun [4 4] six))
449+++ qix (bass 16 (stun [4 4] six))
405450```
406451
407452#### Examples
408453
409454```
410− > (scan "0100" qix:ab)
411− q=256
412− > (scan "10ff" qix:ab)
413− q=4.351
414− > (scan "0" qix:ab)
415− ! {1 2}
416− ! exit
455+> `@ux`(scan "beef" qix:ab)
456+0xbeef
457+
458+> `@ux`(scan "0000" qix:ab)
459+0x0
460+
461+> `@ux`(scan "ef" qix:ab)
462+{1 3}
463+syntax error
417464```
418465
419466---
@@ -422,29 +469,23 @@ Parsing `++rule`. Parses exactly four hexadecimal digits.
422469
423470Parse 1
424471
425−Parsing `++rule`. Parses the number 1.
426−
427−#### Accepts
428−
429−#### Produces
472+Parsing `rule`. Parses the number 1.
430473
431474#### Source
432475
433476```hoon
434− ++ seb (cold 1 (just '1'))
477+++ seb (cold 1 (just '1'))
435478```
436479
437480#### Examples
438481
439482```
440− > (scan "1" seb:ab)
441− 1
442− > (scan "0" seb:ab)
443− ! ~zod/try/~2014.10.23..22.34.21..bfdd/:<[1 1].[1 18]>
444− ! {1 1}
445− > (scan "2" seb:ab)
446− ! ~zod/try/~2014.10.23..22.34.29..d399/:<[1 1].[1 18]>
447− ! {1 1}
483+> (scan "1" seb:ab)
484+1
485+
486+> (scan "2" seb:ab)
487+{1 1}
488+syntax error
448489```
449490
450491---
@@ -453,26 +494,23 @@ Parsing `++rule`. Parses the number 1.
453494
454495Parse decimal
455496
456−Parsing `++rule`. Parses a nonzero decimal digit.
457−
458−#### Accepts
459−
460−#### Produces
497+Parsing `rule`. Parses a nonzero decimal digit.
461498
462499#### Source
463500
464501```hoon
465− ++ sed (cook |=(a/@ (sub a '0')) (shim '1' '9'))
502+++ sed (cook |=(a=@ (sub a '0')) (shim '1' '9'))
466503```
467504
468505#### Examples
469506
470507```
471− > (scan "5" sed:ab)
472− 5
473− > (scan "0" sed:ab)
474− ! {1 1}
475− ! exit
508+> (scan "5" sed:ab)
509+5
510+
511+> (scan "0" sed:ab)
512+{1 1}
513+syntax error
476514```
477515
478516---
@@ -481,26 +519,26 @@ Parsing `++rule`. Parses a nonzero decimal digit.
481519
482520Parse base-32
483521
484−Parsing `++rule`. Parses a nonzero base-32 digit
485−
486−#### Accepts
487−
488−#### Produces
522+Parsing `rule`. Parses a nonzero base-32 digit.
489523
490524#### Source
491525
492526```hoon
493− ++ sev ;~(pose sed sov)
527+++ sev ;~(pose sed sov)
494528```
495529
496530#### Examples
497531
498532```
499− > (scan "c" sev:ab)
500− 12
501− ~zod/socialnet=> (scan "0" sev:ab)
502− ! {1 1}
503− ! exit
533+> `@uv`(scan "2" sev:ab)
534+0v2
535+
536+> `@uv`(scan "j" sev:ab)
537+0vj
538+
539+> `@uv`(scan "0" sev:ab)
540+{1 1}
541+syntax error
504542```
505543
506544---
@@ -509,26 +547,26 @@ Parsing `++rule`. Parses a nonzero base-32 digit
509547
510548Parse base-64
511549
512−Parsing `++rule`. Parses a nonzero base-64 digit
513−
514−#### Accepts
515−
516−#### Produces
550+Parsing `rule`. Parses a nonzero base-64 digit.
517551
518552#### Source
519553
520554```hoon
521− ++ sew ;~(pose sed sow)
555+++ sew ;~(pose sed sow)
522556```
523557
524558#### Examples
525559
526560```
527− > (scan "M" sew:ab)
528− 48
529− > (scan "0" sew:ab)
530− ! {1 1}
531− ! exit
561+> `@uw`(scan "I" sew:ab)
562+0wI
563+
564+> `@uw`(scan "2" sew:ab)
565+0w2
566+
567+> `@uw`(scan "0" sew:ab)
568+{1 1}
569+syntax error
532570```
533571
534572---
@@ -537,26 +575,26 @@ Parsing `++rule`. Parses a nonzero base-64 digit
537575
538576Parse hex
539577
540−Parsing `++rule`. Parses a nonzero hexadecimal digit.
541−
542−#### Accepts
543−
544−#### Produces
578+Parsing `rule`. Parses a non-zero hexadecimal digit.
545579
546580#### Source
547581
548582```hoon
549− ++ sex ;~(pose sed sox)
583+++ sex ;~(pose sed sox)
550584```
551585
552586#### Examples
553587
554588```
555− > (scan "e" sex:ab)
556− 14
557− > (scan "0" sex:ab)
558− ! {1 1}
559− ! exit
589+> `@ux`(scan "a" sex:ab)
590+0xa
591+
592+> `@ux`(scan "2" sex:ab)
593+0x2
594+
595+> `@ux`(scan "0" sex:ab)
596+{1 1}
597+syntax error
560598```
561599
562600---
@@ -565,25 +603,22 @@ Parsing `++rule`. Parses a nonzero hexadecimal digit.
565603
566604Parse binary
567605
568−Parsing `++rule`. Parses a binary digit.
569−
570−#### Accepts
571−
572−#### Produces
606+Parsing `rule`. Parses a binary digit.
573607
574608#### Source
575609
576610```hoon
577− ++ sib (cook |=(a/@ (sub a '0')) (shim '0' '1'))
611+++ sib (cook |=(a=@ (sub a '0')) (shim '0' '1'))
578612```
579613
580614#### Examples
581615
582616```
583− > (scan "1" sib:ab)
584− 1
585− ~zod/socialnet=> (scan "0" sib:ab)
586− 0
617+> `@ub`(scan "1" sib:ab)
618+0b1
619+
620+> `@ub`(scan "0" sib:ab)
621+0b0
587622```
588623
589624---
@@ -592,23 +627,22 @@ Parsing `++rule`. Parses a binary digit.
592627
593628Parse decimal
594629
595−Parsing `++rule`. Parses a decimal digit.
596−
597−#### Accepts
598−
599−#### Produces
630+Parsing `rule`. Parses a decimal digit.
600631
601632#### Source
602633
603634```hoon
604− ++ sid (cook |=(a/@ (sub a '0')) (shim '0' '9'))
635+++ sid (cook |=(a=@ (sub a '0')) (shim '0' '9'))
605636```
606637
607638#### Examples
608639
609640```
610− > (scan "5" sid:ab)
611− 5
641+> (scan "5" sid:ab)
642+5
643+
644+> (scan "0" sid:ab)
645+0
612646```
613647
614648---
@@ -617,23 +651,25 @@ Parsing `++rule`. Parses a decimal digit.
617651
618652Parse base-32
619653
620−Parsing `++rule`. Parses a base-32 digit.
621−
622−#### Accepts
623−
624−#### Produces
654+Parsing `rule`. Parses a base-32 digit.
625655
626656#### Source
627657
628658```hoon
629− ++ siv ;~(pose sid sov)
659+++ siv ;~(pose sid sov)
630660```
631661
632662#### Examples
633663
634664```
635− > (scan "c" siv:ab)
636− 12
665+> `@uv`(scan "r" siv:ab)
666+0vr
667+
668+> `@uv`(scan "5" siv:ab)
669+0v5
670+
671+> `@uv`(scan "0" siv:ab)
672+0v0
637673```
638674
639675---
@@ -642,23 +678,25 @@ Parsing `++rule`. Parses a base-32 digit.
642678
643679Parse base-64
644680
645−Parsing `++rule`. Parses a base-64 digit.
646−
647−#### Accepts
648−
649−#### Produces
681+Parsing `rule`. Parses a base-64 digit.
650682
651683#### Source
652684
653685```hoon
654− ++ siw ;~(pose sid sow)
686+++ siw ;~(pose sid sow)
655687```
656688
657689#### Examples
658690
659691```
660− > (scan "M" siw:ab)
661− 48
692+> `@uw`(scan "M" siw:ab)
693+0wM
694+
695+> `@uw`(scan "0" siw:ab)
696+0w0
697+
698+> `@uw`(scan "c" siw:ab)
699+0wc
662700```
663701
664702---
@@ -667,78 +705,80 @@ Parsing `++rule`. Parses a base-64 digit.
667705
668706Parse hex
669707
670−Parsing `++rule`. Parses a hexadecimal digit.
671−
672−#### Accepts
673−
674−#### Produces
708+Parsing `rule`. Parses a hexadecimal digit.
675709
676710#### Source
677711
678712```hoon
679− ++ six ;~(pose sid sox)
713+++ six ;~(pose sid sox)
680714```
681715
682716#### Examples
683717
684718```
685− > (scan "e" six:ab)
686− 14
719+> `@ux`(scan "e" six:ab)
720+0xe
721+
722+> `@ux`(scan "0" six:ab)
723+0x0
687724```
688725
689726---
690727
691728### `++sov:ab`
692729
693−Parse base-32
730+Parse @uv base-32 letter
694731
695−Parsing `++rule`. Parses a base-32 letter.
696−
697−#### Accepts
698−
699−#### Produces
732+Parsing `rule`. Parses a `@uv` base-32 letter (but not a number).
700733
701734#### Source
702735
703736```hoon
704− ++ sov (cook |=(a/@ (sub a 87)) (shim 'a' 'v'))
737+++ sov (cook |=(a=@ (sub a 87)) (shim 'a' 'v'))
705738```
706739
707740#### Examples
708741
709742```
710− > (scan "c" sov:ab)
711− 12
743+> `@uv`(scan "c" sov:ab)
744+0vc
745+
746+> `@uv`(scan "j" sov:ab)
747+0vj
748+
749+> `@uv`(scan "5" sov:ab)
750+{1 1}
751+syntax error
712752```
713753
714754---
715755
716756### `++sow:ab`
717757
718−Parse base-64
719−
720−Parsing `++rule`. Parses a base-64 letter/symbol.
721−
722−#### Accepts
758+Parse @uw base-64 letter/symbol
723759
724−#### Produces
760+Parsing `rule`. Parses a base-64 letter/symbol (but not number).
725761
726762#### Source
727763
728764```hoon
729− ++ sow ;~ pose
730− (cook |=(a/@ (sub a 87)) (shim 'a' 'z'))
731− (cook |=(a/@ (sub a 29)) (shim 'A' 'Z'))
732− (cold 62 (just '-'))
733− (cold 63 (just '~'))
734− ==
765+++ sow ;~ pose
766+ (cook |=(a=@ (sub a 87)) (shim 'a' 'z'))
767+ (cook |=(a=@ (sub a 29)) (shim 'A' 'Z'))
768+ (cold 62 (just '-'))
769+ (cold 63 (just '~'))
770+ ==
735771```
736772
737773#### Examples
738774
739775```
740− > (scan "M" sow:ab)
741− 48
776+> `@uw`(scan "M" sow:ab)
777+0wM
778+
779+> `@uw`(scan "5" sow:ab)
780+{1 1}
781+syntax error
742782```
743783
744784---
@@ -747,56 +787,77 @@ Parsing `++rule`. Parses a base-64 letter/symbol.
747787
748788Parse hex letter
749789
750−Parsing `++rule`. Parses a hexadecimal letter.
751−
752−#### Accepts
753−
754−#### Produces
790+Parsing `rule`. Parses a hexadecimal letter (but not number).
755791
756792#### Source
757793
758794```hoon
759− ++ sox (cook |=(a/@ (sub a 87)) (shim 'a' 'f'))
795+++ sox (cook |=(a=@ (sub a 87)) (shim 'a' 'f'))
760796```
761797
762798#### Examples
763799
764800```
765− > (scan "e" sox:ab)
766− 14
801+> `@ux`(scan "e" sox:ab)
802+0xe
803+
804+> `@ux`(scan "5" sox:ab)
805+{1 1}
806+syntax error
767807```
768808
769809---
770810
771811### `++ted:ab`
772812
773−Parse \<= 3 decimal
813+Parse 1-999 decimal
774814
775−Parsing `++rule`. Parses a decimal number of up to 3 digits without a
815+Parsing `rule`. Parses a decimal number of up to 3 digits without a
776816leading zero.
777817
778−#### Accepts
818+#### Source
779819
780−#### Produces
820+```hoon
821+++ ted (bass 10 ;~(plug sed (stun [0 2] sid)))
822+```
823+
824+#### Examples
825+
826+```
827+> (scan "214" ted:ab)
828+214
829+
830+> (scan "2" ted:ab)
831+2
832+
833+> (scan "2161" ted:ab)
834+{1 4}
835+syntax error
836+```
837+
838+---
839+
840+### `++tep:ab`
841+
842+Parse non-doz leading phonetic byte
843+
844+Parsing `rule`. Parses the leading phonetic byte , which represents a syllable.
845+Fails if it is `doz`.
781846
782847#### Source
783848
784849```hoon
785− ++ ted (bass 10 ;~(plug sed (stun [0 2] sid)))
850+++ tep (sear |=(a=@ ?:(=(a 'doz') ~ (ins:po a))) til)
786851```
787852
788853#### Examples
789854
790855```
791− > (scan "21" ted:ab)
792− q=21
793− > (scan "214" ted:ab)
794− q=214
795− > (scan "2140" ted:ab)
796− {1 4}
797− > (scan "0" ted:ab)
798− ! {1 1}
799− ! exit
856+> (scan "sam" tep:ab)
857+4
858+
859+> (scan "wic" tep:ab)
860+99
800861```
801862
802863---
@@ -805,27 +866,22 @@ leading zero.
805866
806867Leading phonetic byte
807868
808−Parsing `++rule`. Parses the leading phonetic byte, which represents a
809−syllable.
810−
811−#### Accepts
812−
813−#### Produces
869+Parsing `rule`. Parses the leading phonetic byte, which represents a syllable.
814870
815871#### Source
816872
817873```hoon
818− ++ tip (sear |=(a/@ (ins:po a)) til)
874+++ tip (sear |=(a=@ (ins:po a)) til)
819875```
820876
821877#### Examples
822878
823879```
824− > (scan "doz" tip:ab)
825− 0
880+> (scan "doz" tip:ab)
881+0
826882
827− > (scan "pit" tip:ab)
828− 242
883+> (scan "pit" tip:ab)
884+242
829885```
830886
831887---
@@ -834,27 +890,21 @@ syllable.
834890
835891Trailing phonetic syllable
836892
837−Parsing `++rule`. Parses the trailing phonetic byte, which represents a
838−syllable.
839−
840−#### Accepts
841−
842−#### Produces
893+Parsing `rule`. Parses the trailing phonetic byte, which represents a syllable.
843894
844895#### Source
845896
846897```hoon
847− ++ tiq (sear |=(a/@ (ind:po a)) til)
848−
898+++ tiq (sear |=(a=@ (ind:po a)) til)
849899```
850900
851901#### Examples
852902
853903```
854− > (scan "zod" tiq:ab)
855− 0
856− > (scan "nec" tiq:ab)
857− 1
904+> (scan "zod" tiq:ab)
905+0
906+> (scan "nec" tiq:ab)
907+1
858908```
859909
860910---
@@ -863,26 +913,26 @@ syllable.
863913
864914Parse 3 decimal digits
865915
866−Parsing `++rule`. Parses exactly three decimal digits.
867−
868−#### Accepts
869−
870−#### Produces
916+Parsing `rule`. Parses exactly three decimal digits.
871917
872918#### Source
873919
874920```hoon
875− ++ tid (bass 10 (stun [3 3] sid))
921+++ tid (bass 10 (stun [3 3] sid))
876922```
877923
878924#### Examples
879925
880926```
881− > (scan "013" tid:ab)
882− q=13
883− > (scan "01" tid:ab)
884− ! {1 3}
885− ! exit
927+> (scan "013" tid:ab)
928+13
929+
930+> (scan "999" tid:ab)
931+999
932+
933+> (scan "99" tid:ab)
934+{1 3}
935+syntax error
886936```
887937
888938---
@@ -891,85 +941,70 @@ Parsing `++rule`. Parses exactly three decimal digits.
891941
892942Parse 3 lowercase
893943
894−Parsing `++rule`. Parses exactly three lowercase letters.
895−
896−#### Accepts
897−
898−#### Produces
944+Parsing `rule`. Parses exactly three lowercase letters.
899945
900946#### Source
901947
902948```hoon
903− ++ til (boss 256 (stun [3 3] low))
949+++ til (boss 256 (stun [3 3] low))
904950```
905951
906952#### Examples
907953
908954```
909− > (scan "mer" til:ab)
910− q=7.497.069
911− > `@t`(scan "mer" til:ab)
912− 'mer'
913− > (scan "me" til:ab)
914− ! {1 3}
915− ! exit
955+> `@t`(scan "mer" til:ab)
956+'mer'
957+
958+> `@t`(scan "me" til:ab)
959+{1 3}
960+syntax error
916961```
917962
918963---
919964
920965### `++urs:ab`
921966
922−Parse span characters
967+Parse knot characters
923968
924−Parsing rule. Parses characters from an atom of the span aura `@ta`.
925−
926−#### Accepts
927−
928−#### Produces
969+Parsing rule. Parses characters from an atom of the knot aura `@ta`.
929970
930971#### Source
931972
932973```hoon
933− ++ urs %+ cook
934− |=(a/tape (rap 3 ^-((list @) a)))
935− (star ;~(pose nud low hep dot sig cab))
974+++ urs %+ cook
975+ |=(a=tape (rap 3 ^-((list @) a)))
976+ (star ;~(pose nud low hep dot sig cab))
936977```
937978
938979#### Examples
939980
940981```
941− > `@ta`(scan "asa-lom_tak" urs:ab)
942− ~.asa-lom_tak
943− > `@t`(scan "asa-lom_tak" urs:ab)
944− 'asa-lom_tak'
982+> `@ta`(scan "asa-lom_tak" urs:ab)
983+~.asa-lom_tak
945984```
946985
947986---
948987
949988### `++urt:ab`
950989
951−Parse non-`_` span
952−
953−Parsing rule. Parses all characters of the span aura `@ta` except
954−for cab, `_`.
955−
956−#### Accepts
990+Parse knot without underscores
957991
958−#### Produces
992+Parsing `rule`. Parses all characters of the knot aura `@ta` except for cab,
993+`_`.
959994
960995#### Source
961996
962997```hoon
963− ++ urt %+ cook
964− |=(a/tape (rap 3 ^-((list @) a)))
965− (star ;~(pose nud low hep dot sig))
998+++ urt %+ cook
999+ |=(a=tape (rap 3 ^-((list @) a)))
1000+ (star ;~(pose nud low hep dot sig))
9661001```
9671002
9681003#### Examples
9691004
9701005```
971− > `@t`(scan "asa-lom.t0k" urt:ab)
972− 'asa-lom.t0k'
1006+> `@ta`(scan "asa-lom.t0k" urt:ab)
1007+~.asa-lom.t0k
9731008```
9741009
9751010---
@@ -978,26 +1013,25 @@ for cab, `_`.
9781013
9791014Parse bas, soq, or bix
9801015
981−Parsing rule. Parses an escaped backslash, single quote, or hex pair
982−byte.
983−
984−#### Accepts
985−
986−#### Produces
1016+Parsing `rule`. Parses an escaped backslash, single quote, or hex pair byte.
9871017
9881018#### Source
9891019
9901020```hoon
991− ++ voy ;~(pfix bas ;~(pose bas soq bix))
1021+++ voy ;~(pfix bas ;~(pose bas soq bix))
9921022```
9931023
9941024#### Examples
9951025
9961026```
997− > (scan "\\0a" voy:ab)
998− q=10
999− > (scan "\\'" voy:ab)
1000− q=39
1027+> (scan "\\\\" voy:ab)
1028+'\\'
1029+
1030+> (scan "\\'" voy:ab)
1031+'\''
1032+
1033+> (scan "\\0a" voy:ab)
1034+'\0a'
10011035```
10021036
10031037---
@@ -1008,22 +1042,11 @@ Top-level atom parser engine
10081042
10091043A core containing top-level atom parsers.
10101044
1011−#### Accepts
1012−
1013−#### Produces
1014−
10151045#### Source
10161046
10171047```hoon
1018− ++ ag
1019− |%
1020−```
1021−
1022−#### Examples
1023−
1024−```
1025− > ag
1026− <14.vpu 414.mof 100.xkc 1.ypj %164>
1048+++ ag
1049+ |%
10271050```
10281051
10291052---
@@ -1036,21 +1059,30 @@ Parser modifier. Parses 0 or the sample rule `fel`.
10361059
10371060#### Accepts
10381061
1062+`fel` is a `rule`.
1063+
10391064#### Produces
10401065
1041−`fel` is a `rule`.
1066+A `rule`.
10421067
10431068#### Source
10441069
10451070```hoon
1046− ++ ape |*(fel/rule ;~(pose (cold 0 (just '0')) fel))
1071+++ ape |*(fel=rule ;~(pose (cold 0 (just '0')) fel))
10471072```
10481073
10491074#### Examples
10501075
10511076```
1052− > (scan "202" (star (ape:ag (cold 2 (just '2')))))
1053− ~[2 0 2]
1077+> (scan "0" (ape:ag (cold 2 (just '2'))))
1078+0
1079+
1080+> (scan "2" (ape:ag (cold 2 (just '2'))))
1081+2
1082+
1083+> (scan "3" (ape:ag (cold 2 (just '2'))))
1084+{1 1}
1085+syntax error
10541086```
10551087
10561088---
@@ -1059,23 +1091,19 @@ Parser modifier. Parses 0 or the sample rule `fel`.
10591091
10601092Parses binary number
10611093
1062−Parsing rule. Parses a binary number without a leading zero.
1063−
1064−#### Accepts
1065−
1066−#### Produces
1094+Parsing `rule`. Parses a binary number without a leading zero.
10671095
10681096#### Source
10691097
10701098```hoon
1071− ++ bay (ape (bass 16 ;~(plug qeb:ab (star ;~(pfix dog qib:ab)))))
1099+++ bay (ape (bass 16 ;~(plug qeb:ab (star ;~(pfix dog qib:ab)))))
10721100```
10731101
10741102#### Examples
10751103
10761104```
1077− > (scan "10.0110" bay:ag)
1078− q=38
1105+> `@ub`(scan "101.1100.0011.1010" bay:ag)
1106+0b101.1100.0011.1010
10791107```
10801108
10811109---
@@ -1086,24 +1114,18 @@ Parse IPv6
10861114
10871115Parsing rule. Parses a `@is`, an IPv6 address.
10881116
1089−#### Accepts
1090−
1091−#### Produces
1092−
10931117#### Source
10941118
10951119```hoon
1096− ++ bip =+ tod=(ape qex:ab)
1097− (bass 0x1.0000 ;~(plug tod (stun [7 7] ;~(pfix dog tod))))
1120+++ bip =+ tod=(ape qex:ab)
1121+ (bass 0x1.0000 ;~(plug tod (stun [7 7] ;~(pfix dog tod))))
10981122```
10991123
11001124#### Examples
11011125
11021126```
1103− > (scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1104− q=283.183.420.760.121.105.516.068.864
1105− > `@is`(scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1106− .0.0.ea.3e6c.0.0.0.0
1127+> `@is`(scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1128+.0.0.ea.3e6c.0.0.0.0
11071129```
11081130
11091131---
@@ -1112,25 +1134,21 @@ Parsing rule. Parses a `@is`, an IPv6 address.
11121134
11131135Parse decimal with dots
11141136
1115−Parsing rule. Parses a decimal number that includes dot separators.
1116−
1117−#### Accepts
1118−
1119−#### Produces
1137+Parsing `rule`. Parses a decimal number that includes dot separators.
11201138
11211139#### Source
11221140
11231141```hoon
1124− ++ dem (ape (bass 1.000 ;~(plug ted:ab (star ;~(pfix dog tid:ab)))))
1142+++ dem (ape (bass 1.000 ;~(plug ted:ab (star ;~(pfix dog tid:ab)))))
11251143```
11261144
11271145#### Examples
11281146
11291147```
1130− > (scan "52" dem:ag)
1131− q=52
1132− > (scan "13.507" dem:ag)
1133− q=13.507
1148+> (scan "52" dem:ag)
1149+52
1150+> (scan "13.507" dem:ag)
1151+13.507
11341152```
11351153
11361154---
@@ -1141,24 +1159,27 @@ Parse decimal number
11411159
11421160Parsing rule. Parses a decimal number without a leading zero.
11431161
1144−#### Accepts
1145−
1146−#### Produces
1147−
11481162#### Source
11491163
11501164```hoon
1151− ++ dim (ape (bass 10 ;~(plug sed:ab (star sid:ab))))
1165+++ dim (ape dip)
11521166```
11531167
11541168#### Examples
11551169
11561170```
1157− > (scan "52" dim:ag)
1158− q=52
1159− > (scan "013507" dim:ag)
1160− ! {1 2}
1161− ! exit
1171+> (scan "52" dim:ag)
1172+52
1173+
1174+> (scan "0" dim:ag)
1175+0
1176+
1177+> (scan "13507" dim:ag)
1178+13.507
1179+
1180+> (scan "013507" dim:ag)
1181+{1 2}
1182+syntax error
11621183```
11631184
11641185---
@@ -1169,25 +1190,21 @@ Parse decimal with leading `0`
11691190
11701191Parsing rule. Parses a decmial number with leading zeroes.
11711192
1172−#### Accepts
1173−
1174−#### Produces
1175−
11761193#### Source
11771194
11781195```hoon
1179− ++ dum (bass 10 (plus sid:ab))
1196+++ dum (bass 10 (plus sid:ab))
11801197```
11811198
11821199#### Examples
11831200
11841201```
1185− > (scan "52" dum:ag)
1186− q=52
1187− > (scan "0000052" dum:ag)
1188− q=52
1189− > (scan "13507" dim:ag)
1190− q=13.507
1202+> (scan "52" dum:ag)
1203+52
1204+> (scan "0000052" dum:ag)
1205+52
1206+> (scan "13507" dim:ag)
1207+13.507
11911208```
11921209
11931210---
@@ -1198,69 +1215,141 @@ Parse phonetic base
11981215
11991216Parsing rule. Parses an atom of aura `@p`, the phonetic base.
12001217
1201−#### Accepts
1218+#### Source
12021219
1203−#### Produces
1220+```hoon
1221+++ fed %+ cook fynd:ob
1222+ ;~ pose
1223+ %+ bass 0x1.0000.0000.0000.0000 :: oversized
1224+ ;~ plug
1225+ huf:ab
1226+ (plus ;~(pfix doh hyf:ab))
1227+ ==
1228+ hof:ab :: planet or moon
1229+ haf:ab :: star
1230+ tiq:ab :: galaxy
1231+ ==
1232+```
1233+
1234+#### Examples
1235+
1236+```
1237+> `@p`(scan "zod" fed:ag)
1238+~zod
1239+
1240+> `@p`(scan "sampel" fed:ag)
1241+~sampel
1242+
1243+> `@p`(scan "sampel-palnet" fed:ag)
1244+~sampel-palnet
1245+
1246+> `@p`(scan "sampel-palnet-sampel-palnet" fed:ag)
1247+~sampel-palnet-sampel-palnet
1248+
1249+> `@p`(scan "tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr" fed:ag)
1250+~tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr
1251+```
1252+
1253+---
1254+
1255+### `++feq:ag`
1256+
1257+Parse `@q` phonetic base
1258+
1259+Parsing rule. Parses an atom of aura `@q` (an unscrambled `@p`).
12041260
12051261#### Source
12061262
12071263```hoon
1208− ++ fed ;~ pose
1209− (bass 0x1.0000.0000.0000.0000 (most doh hyf:ab))
1210− huf:ab
1211− hif:ab
1212− tiq:ab
1213− ==
1264+++ feq %+ cook |=(a=(list @) (rep 4 (flop a)))
1265+ ;~ plug
1266+ ;~(pose hif:ab tiq:ab)
1267+ (star ;~(pfix dof hif:ab))
1268+ ==
12141269```
12151270
12161271#### Examples
12171272
12181273```
1219− > (scan "zod" fed:ag)
1220− 0
1221− > (scan "nec" fed:ag)
1222− 1
1223− > (scan "sondel" fed:ag)
1224− 9.636
1225− > ~tillyn-nillyt
1226− ~tillyn-nillyt
1227− > (scan "tillyn-nillyt" fed:ag)
1228− 3.569.565.175
1229− > (scan "tillyn-nillyt-tasfyn-partyv" fed:ag)
1230− 15.331.165.687.565.582.592
1231− > (scan "tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr" fed:ag)
1232− 282.810.089.790.159.633.869.501.053.313.363.681.181
1274+> `@q`(scan "sampel" feq:ag)
1275+.~sampel
1276+
1277+> `@q`(scan "sampel-palnet" feq:ag)
1278+.~sampel-palnet
1279+
1280+> `@q`(scan "sampel-sampel-palnet" feq:ag)
1281+.~sampel-sampel-palnet
1282+
1283+> `@q`(scan "sampel-palnet-sampel-palnet" feq:ag)
1284+.~sampel-palnet-sampel-palnet
1285+
1286+> `@q`(scan "sampel-sampel-sampel-sampel-palnet-sampel-palnet" feq:ag)
1287+.~sampel-sampel-sampel-sampel-palnet-sampel-palnet
12331288```
12341289
12351290---
12361291
1237−### `++hex:ag`
1292+### `++fim:ag`
12381293
1239−Parse hex
1294+Parse base58check
12401295
1241−Parsing rule. Parses a hexadecimal number
1296+Parse a base58check value, check checksum, and return decoded value sans-checksum. If
1297+the checksum check fails, parsing will fail.
12421298
1243−#### Accepts
1299+#### Source
12441300
1245−#### Produces
1301+```hoon
1302+++ fim (sear den:fa (bass 58 (plus fem:ab)))
1303+```
1304+
1305+#### Examples
1306+
1307+With valid checksum:
1308+
1309+```
1310+> (enc:fa 0xdead.beef)
1311+0xdead.beef.938b.8b0c
1312+> (c-co:co 0xdead.beef.938b.8b0c)
1313+"eFGDJSVvRHd"
1314+> `@ux`(scan "eFGDJSVvRHd" fim:ag)
1315+0xdead.beef
1316+```
1317+
1318+With invalid checksum:
1319+
1320+```
1321+> (c-co:co 0xdead.beef.ffff)
1322+"2utUWE41U"
1323+> `@ux`(scan "2utUWE41U" fim:ag)
1324+{1 10}
1325+syntax error
1326+```
1327+
1328+---
1329+
1330+### `++hex:ag`
1331+
1332+Parse hex
1333+
1334+Parsing `rule`. Parses a hexadecimal number
12461335
12471336#### Source
12481337
12491338```hoon
1250− ++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
1339+++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
12511340```
12521341
12531342#### Examples
12541343
12551344```
1256− > (scan "4" hex:ag)
1257− q=4
1258− > (scan "1a" hex:ag)
1259− q=26
1260− > (scan "3.ac8d" hex:ag)
1261− q=240.781
1262− > `@ux`(scan "3.ac8d" hex:ag)
1263− 0x3.ac8d
1345+> `@ux`(scan "4" hex:ag)
1346+0x4
1347+
1348+> `@ux`(scan "1a" hex:ag)
1349+0x1a
1350+
1351+> `@ux`(scan "3.ac8d" hex:ag)
1352+0x3.ac8d
12641353```
12651354
12661355---
@@ -1269,28 +1358,61 @@ Parsing rule. Parses a hexadecimal number
12691358
12701359Parse IPv4 address
12711360
1272−Parsing rule. Parses an IPv4 address.
1361+Parsing `rule`. Parses an IPv4 address.
12731362
1274−#### Accepts
1363+#### Source
12751364
1276−#### Produces
1365+```hoon
1366+++ lip =+ tod=(ape ted:ab)
1367+ (bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
1368+```
1369+
1370+#### Examples
1371+
1372+```
1373+> `@if`(scan "127.0.0.1" lip:ag)
1374+.127.0.0.1
1375+```
1376+
1377+---
1378+
1379+### `++mot:ag`
1380+
1381+Parse numerical month
1382+
1383+Parse a numerical month (1-12).
12771384
12781385#### Source
12791386
12801387```hoon
1281− ++ lip =+ tod=(ape ted:ab)
1282− (bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
1388+++ mot ;~ pose
1389+ ;~ pfix
1390+ (just '1')
1391+ (cook |=(a=@ (add 10 (sub a '0'))) (shim '0' '2'))
1392+ ==
1393+ sed:ab
1394+ ==
12831395```
12841396
12851397#### Examples
12861398
12871399```
1288− > (scan "127.0.0.1" lip:ag)
1289− q=2.130.706.433
1290− > `@if`(scan "127.0.0.1" lip:ag)
1291− .127.0.0.1
1292− > `@if`(scan "8.8.8.8" lip:ag)
1293− .8.8.8.8
1400+> (scan "0" mot:ag)
1401+{1 1}
1402+syntax error
1403+
1404+> (scan "1" mot:ag)
1405+1
1406+
1407+> (scan "6" mot:ag)
1408+6
1409+
1410+> (scan "12" mot:ag)
1411+12
1412+
1413+> (scan "13" mot:ag)
1414+{1 2}
1415+syntax error
12941416```
12951417
12961418---
@@ -1299,23 +1421,19 @@ Parsing rule. Parses an IPv4 address.
12991421
13001422Parse Base-32 with dots
13011423
1302−Parsing rule. Parses a Base-32 number with dot separators.
1303−
1304−#### Accepts
1305−
1306−#### Produces
1424+Parsing `rule`. Parses a Base-32 number with dot separators.
13071425
13081426#### Source
13091427
13101428```hoon
1311− ++ viz (ape (bass 0x200.0000 ;~(plug pev:ab (star ;~(pfix dog piv:ab)))))
1429+++ viz (ape (bass 0x200.0000 ;~(plug pev:ab (star ;~(pfix dog piv:ab)))))
13121430```
13131431
13141432#### Examples
13151433
13161434```
1317− > (scan "e2.ol4pm" viz:ag)
1318− q=15.125.353.270
1435+> `@uv`(scan "e2.ol4pm" viz:ag)
1436+0ve2.ol4pm
13191437```
13201438
13211439---
@@ -1324,23 +1442,19 @@ Parsing rule. Parses a Base-32 number with dot separators.
13241442
13251443Parse base-32 string
13261444
1327−Parsing rule. Parses a raw base-32 string.
1328−
1329−#### Accepts
1330−
1331−#### Produces
1445+Parsing `rule`. Parses a raw base-32 string (without dots).
13321446
13331447#### Source
13341448
13351449```hoon
1336− ++ vum (bass 32 (plus siv:ab))
1450+++ vum (bass 32 (plus siv:ab))
13371451```
13381452
13391453#### Examples
13401454
13411455```
1342− > (scan "e2ol4pm" vum:ag)
1343− q=15.125.353.270
1456+> `@uv`(scan "e2ol4pm" vum:ag)
1457+0ve2.ol4pm
13441458```
13451459
13461460---
@@ -1349,25 +1463,19 @@ Parsing rule. Parses a raw base-32 string.
13491463
13501464Parse base-64
13511465
1352−Parsing rule. Parses a base-64 number.
1353−
1354−#### Accepts
1355−
1356−#### Produces
1466+Parsing `rule`. Parses a base-64 number.
13571467
13581468#### Source
13591469
13601470```hoon
1361− ++ wiz (ape (bass 0x4000.0000 ;~(plug pew:ab (star ;~(pfix dog piw:ab)))))
1362− --
1363− ::
1471+++ wiz (ape (bass 0x4000.0000 ;~(plug pew:ab (star ;~(pfix dog piw:ab)))))
13641472```
13651473
13661474#### Examples
13671475
13681476```
1369− > (scan "e2O.l4Xpm" wiz:ag)
1370− q=61.764.130.813.526
1477+> `@uw`(scan "e2O.l4Xpm" wiz:ag)
1478+0we2O.l4Xpm
13711479```
13721480
13731481---
@@ -1382,24 +1490,15 @@ relationship between a planet and its star.
13821490
13831491#### Accepts
13841492
1385−#### Produces
1493+`top` is an atom.
13861494
13871495`bot` is an atom.
13881496
1389−`top` is an atom.
1390−
13911497#### Source
13921498
13931499```hoon
1394− ++ mu
1395− |_ [top/@ bot/@]
1396−```
1397−
1398−#### Examples
1399−
1400−```
1401− > ~(. mu 0x20e5 0x5901)
1402− <3.sjm [[@ux @ux] <414.hhh 100.xkc 1.ypj %164>]>
1500+++ mu
1501+ |_ [top=@ bot=@]
14031502```
14041503
14051504---
@@ -1414,23 +1513,23 @@ planet.
14141513
14151514#### Accepts
14161515
1417−#### Produces
1516+`top` & `bot` are atoms, and are the sample of `+mu`.
14181517
1419−`bot` is an atom.
1518+#### Produces
14201519
1421−`top` is an atom.
1520+A `(pair @ @)`.
14221521
14231522#### Source
14241523
14251524```hoon
1426− ++ zag [p=(end 4 1 (add top bot)) q=bot]
1525+++ zag [p=(end 4 (add top bot)) q=bot]
14271526```
14281527
14291528#### Examples
14301529
14311530```
1432− > `[@ux @ux]`~(zag mu 0x20e0 0x201)
1433− [0x22e1 0x201]
1531+> `[@ux @ux]`~(zag mu 0x20e0 0x201)
1532+[0x22e1 0x201]
14341533```
14351534
14361535---
@@ -1439,30 +1538,29 @@ planet.
14391538
14401539Subtract bottom from top
14411540
1442−The inverse of `++zag`. Produces the cell of `top` and `bot` with
1443−`top` unscrambled. The unscrambled `top` is the sum of the sample `top`
1444−and the 16-bit complement of `bot`. Used to unscramble the name of the
1445−planet.
1541+The inverse of [`++zag`](#zagmu). Produces the cell of `top` and `bot` with
1542+`top` unscrambled. The unscrambled `top` is the sum of the sample `top` and the
1543+16-bit complement of `bot`. Used to unscramble the name of the planet.
14461544
14471545#### Accepts
14481546
1449−#### Produces
1547+`top` & `bot` are atoms, and are the sample of `+mu`.
14501548
1451−`bot` is an atom.
1549+#### Produces
14521550
1453−`top` is an atom.
1551+A `(pair @ @)`.
14541552
14551553#### Source
14561554
14571555```hoon
1458− ++ zig [p=(end 4 1 (add top (sub 0x1.0000 bot))) q=bot]
1556+++ zig [p=(end 4 (add top (sub 0x1.0000 bot))) q=bot]
14591557```
14601558
14611559#### Examples
14621560
14631561```
1464− > `[@ux @ux]`~(zig mu 0x2f46 0x1042)
1465− [0x1f04 0x1042]
1562+> `[@ux @ux]`~(zig mu 0x22e1 0x201)
1563+[0x20e0 0x201]
14661564```
14671565
14681566---
@@ -1476,23 +1574,23 @@ planet name.
14761574
14771575#### Accepts
14781576
1479−#### Produces
1577+`top` & `bot` are atoms, and are the sample of `+mu`.
14801578
1481−`bot` is an atom.
1579+#### Produces
14821580
1483−`top` is an atom.
1581+An atom.
14841582
14851583#### Source
14861584
14871585```hoon
1488− ++ zug (mix (lsh 4 1 top) bot)
1586+++ zug (mix (lsh 4 top) bot)
14891587```
14901588
14911589#### Examples
14921590
14931591```
1494− > `@ux`~(zug mu 0x10e1 0xfa)
1495− 0x10e1.00fa
1592+> `@ux`~(zug mu 0x22e1 0x201)
1593+0x22e1.0201
14961594```
14971595
14981596---
@@ -1505,22 +1603,51 @@ A door containing arms that render digits at bases 10, 16, 32, and 64.
15051603
15061604#### Accepts
15071605
1606+`tig` is an `atom`.
1607+
1608+#### Source
1609+
1610+```hoon
1611+++ ne
1612+ |_ tig=@
1613+```
1614+
1615+---
1616+
1617+### `++c:ne`
1618+
1619+Render base58check
1620+
1621+Render a single base58check character.
1622+
1623+#### Accepts
1624+
1625+`tig` is an `atom`, and is the sample of `+ne`.
1626+
15081627#### Produces
15091628
1510−`tig` is an `atom`.
1629+An atom.
15111630
15121631#### Source
15131632
15141633```hoon
1515− ++ ne
1516− |_ tig/@
1634+++ c (cut 3 [tig 1] key:fa)
15171635```
15181636
15191637#### Examples
15201638
15211639```
1522− > ~(. ne 20)
1523− <4.gut [@ud <414.hhh 100.xkc 1.ypj %164>]>
1640+> `@t`~(c ne 7)
1641+'8'
1642+
1643+> `@t`~(c ne 27)
1644+'U'
1645+
1646+> `@t`~(c ne 57)
1647+'z'
1648+
1649+> `@t`~(c ne 58)
1650+''
15241651```
15251652
15261653---
@@ -1533,22 +1660,23 @@ Renders a decimal digit as an atom of an ACII byte value.
15331660
15341661#### Accepts
15351662
1663+`tig` is an `atom`, and is the sample of `+ne`.
1664+
15361665#### Produces
15371666
1538−`tig` is an `atom`.
1667+An atom.
15391668
15401669#### Source
15411670
15421671```hoon
1543− ++ d (add tig '0')
1672+++ d (add tig '0')
15441673```
15451674
15461675#### Examples
15471676
15481677```
1549− > `@t`~(d ne 7)
1550− '7'
1551−
1678+> `@t`~(d ne 7)
1679+'7'
15521680```
15531681
15541682---
@@ -1561,24 +1689,26 @@ Renders a hexadecimal digit as an atom of an ASCII byte value.
15611689
15621690#### Accepts
15631691
1692+`tig` is an `atom`, and is the sample of `+ne`.
1693+
15641694#### Produces
15651695
1566−`tig` is an `atom`.
1696+An atom.
15671697
15681698#### Source
15691699
15701700```hoon
1571− ++ x ?:((gte tig 10) (add tig 87) d)
1701+++ x ?:((gte tig 10) (add tig 87) d)
15721702```
15731703
15741704#### Examples
15751705
15761706```
1577− > `@t`~(x ne 7)
1578− '7'
1707+> `@t`~(x ne 7)
1708+'7'
15791709
1580− > `@t`~(x ne 14)
1581− 'e'
1710+> `@t`~(x ne 14)
1711+'e'
15821712```
15831713
15841714---
@@ -1591,23 +1721,29 @@ Renders a base-32 digit as an atom of an ASCII byte value.
15911721
15921722#### Accepts
15931723
1724+`tig` is an `atom`, and is the sample of `+ne`.
1725+
15941726#### Produces
15951727
1728+An atom.
1729+
15961730#### Source
15971731
15981732```hoon
1599− ++ v ?:((gte tig 10) (add tig 87) d)
1733+++ v ?:((gte tig 10) (add tig 87) d)
16001734```
16011735
16021736#### Examples
16031737
16041738```
1605− > `@t`~(v ne 7)
1606− '7'
1607− > `@t`~(v ne 14)
1608− 'e'
1609− > `@t`~(v ne 25)
1610− 'p'
1739+> `@t`~(v ne 7)
1740+'7'
1741+
1742+> `@t`~(v ne 14)
1743+'e'
1744+
1745+> `@t`~(v ne 25)
1746+'p'
16111747```
16121748
16131749---
@@ -1620,35 +1756,41 @@ Renders a base-64 digit as an atom of an ASCII byte value.
16201756
16211757#### Accepts
16221758
1759+`tig` is an `atom`, and is the sample of `+ne`.
1760+
16231761#### Produces
16241762
1625−`tig` is an `atom`.
1763+An atom.
16261764
16271765#### Source
16281766
16291767```hoon
1630− ++ w ?:(=(tig 63) '~' ?:(=(tig 62) '-' ?:((gte tig 36) (add tig 29) x)))
1631− --
1632− ::
1768+++ w ?:(=(tig 63) '~' ?:(=(tig 62) '-' ?:((gte tig 36) (add tig 29) x)))
16331769```
16341770
16351771#### Examples
16361772
16371773```
1638− > `@t`~(w ne 7)
1639− '7'
1640− > `@t`~(w ne 14)
1641− 'e'
1642− > `@t`~(w ne 25)
1643− 'p'
1644− > `@t`~(w ne 52)
1645− 'Q'
1646− > `@t`~(w ne 61)
1647− 'Z'
1648− > `@t`~(w ne 63)
1649− '~'
1650− > `@t`~(w ne 62)
1651− '-'
1774+> `@t`~(w ne 7)
1775+'7'
1776+
1777+> `@t`~(w ne 14)
1778+'e'
1779+
1780+> `@t`~(w ne 25)
1781+'p'
1782+
1783+> `@t`~(w ne 52)
1784+'Q'
1785+
1786+> `@t`~(w ne 61)
1787+'Z'
1788+
1789+> `@t`~(w ne 63)
1790+'~'
1791+
1792+> `@t`~(w ne 62)
1793+'-'
16521794```
16531795
16541796---
content/docs/hoon/reference/stdlib/table-of-contents.md+60−34
@@ -84,6 +84,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
8484
8585### c
8686
87+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#cne' title="Render base58check"><code>++c:ne</code></a>
8788<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cab' title="Parse _ (cab)"><code>++cab</code></a>
8889<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#can' title="Assemble"><code>++can</code></a>
8990<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#cap' title="Tree head"><code>++cap</code></a>
@@ -150,6 +151,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
150151<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrh' title="Divide (halfprecision float)"><code>++div:rh</code></a>
151152<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrs' title="Divide (singleprecision float)"><code>++div:rs</code></a>
152153<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrq' title="Divide (quadprecision float)"><code>++div:rq</code></a>
154+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dof' title="Hep & optional gap"><code>++dof</code></a>
153155<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
154156<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
155157<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#doq' title="Parse double quote"><code>++doq</code></a>
@@ -209,8 +211,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
209211<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feenob' title="Reverse +fee"><code>++feen:ob</code></a>
210212<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feinob' title="Conceal structure v3"><code>++fein:ob</code></a>
211213<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feisob' title="Four-round generalised Feistel cipher over the domain [0, 2^32 - 2^16 - 1]"><code>++feis:ob</code></a>
214+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#femab' title="Parse base58check char"><code>++fem:ab</code></a>
212215<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#fenob' title="Reverse +fe"><code>++fen:ob</code></a>
216+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#feqag' title="Parse @q phonetic base"><code>++feq:ag</code></a>
213217<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#fil' title="Fill bloqstream"><code>++fil</code></a>
218+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fimag' title="Parse base58check"><code>++fim:ag</code></a>
214219<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#find' title="First index in list"><code>++find</code></a>
215220<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#flag' title="Boolean (flag)"><code>+$flag</code></a>
216221<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#flifl' title="Flip sign"><code>++fli:fl</code></a>
@@ -280,12 +285,14 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
280285
281286### h
282287
288+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hafab' title="Parse non-doz phonetic pair"><code>++haf:ab</code></a>
283289<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#hair' title="Parsing line and column"><code>+$hair</code></a>
284290<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#hasby' title="Key existence check (map)"><code>++has:by</code></a>
285291<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#hasin' title="Key existence check (set)"><code>++has:in</code></a>
286292<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#hasju' title="Check contents (jug)"><code>++has:ju</code></a>
287293<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hax' title="Parse # (hax)"><code>++hax</code></a>
288294<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#head' title="Get head of cell"><code>++head</code></a>
295+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hefab' title="Parse non-dozzod phonetic pair"><code>++hef:ab</code></a>
289296<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#here' title="Placebased apply"><code>++here</code></a>
290297<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hep' title="Parse (hep)"><code>++hep</code></a>
291298<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hex' title="Hexadecimal to atom"><code>++hex</code></a>
@@ -293,11 +300,12 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
293300<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
294301<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hig' title="Parse single uppercase letter"><code>++hig</code></a>
295302<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hit' title="Parse single hexadecimal digit"><code>++hit</code></a>
303+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hofab' title="Parse 2-4 @q phonetic pair"><code>++hof:ab</code></a>
296304<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#homo' title="Homogenize list"><code>++homo</code></a>
297305<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#horyo' title="Seconds in hour"><code>++hor:yo</code></a>
298−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse two phonetic pairs"><code>++huf:ab</code></a>
306+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse 1-4 @q phonetic pairs"><code>++huf:ab</code></a>
299307<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#hunt' title="Select between two units by a rule"><code>++hunt</code></a>
300−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse 8 phonetic bytes"><code>++hyf:ab</code></a>
308+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse four @q phonetic pairs"><code>++hyf:ab</code></a>
301309
302310### i
303311
@@ -401,6 +409,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
401409<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mink' title="Mock (virtual Nock) interpreter"><code>++mink</code></a>
402410<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mityo' title="Seconds in minute"><code>++mit:yo</code></a>
403411<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#mix' title="Binary XOR (atom)"><code>++mix</code></a>
412+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mixed-case-symbol' title="Mixed-case term"><code>++mixed-case-symbol</code></a>
404413<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mock' title="Compute formula on subject with hint"><code>++mock</code></a>
405414<a class="tooltip" href='/docs/hoon/reference/stdlib/1a/#mod' title="Modulus (atom)"><code>++mod</code></a>
406415<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mohyo' title="Days in month"><code>++moh:yo</code></a>
@@ -410,6 +419,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
410419<a class="tooltip" href='/docs/hoon/reference/stdlib/2f/#mor' title="(more) mug order"><code>++mor</code></a>
411420<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#more' title="Parse list with delimiter"><code>++more</code></a>
412421<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#most' title="Parse list of at least one match"><code>++most</code></a>
422+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#motag' title="Parse numerical month"><code>++mot:ag</code></a>
413423<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#moyyo' title="Days in months of leapyear"><code>++moy:yo</code></a>
414424<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#mu' title="Core used to scramble 16bit atoms"><code>++mu</code></a>
415425<a class="tooltip" href='/docs/hoon/reference/stdlib/2e/#mug' title="FNV1a scrambler"><code>++mug</code></a>
@@ -438,7 +448,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
438448<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#newsi' title="Atom to @s"><code>++new:si</code></a>
439449<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#next' title="Consume character"><code>++next</code></a>
440450<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#nipto' title="Remove root of queue"><code>++nip:to</code></a>
441−<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and "><code>++nix</code></a>
451+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and underscore"><code>++nix</code></a>
442452<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#nl' title="Noun to container operations"><code>++nl</code></a>
443453<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#nock' title="Virtual machine (see Nock)"><code>++nock</code></a>
444454<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#not' title="Binary NOT (atom)"><code>++not</code></a>
@@ -465,16 +475,16 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
465475<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
466476<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#path' title="Like unix path"><code>+$path</code></a>
467477<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#peg' title="Address within address"><code>++peg</code></a>
468−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pel' title="Parse ( (pel)"><code>++pel</code></a>
469−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#per' title="Parse ) (per)"><code>++per</code></a>
478+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pal' title="Parse ( (pal)"><code>++pal</code></a>
479+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#par' title="Parse ) (par)"><code>++par</code></a>
470480<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parses dime/tiple without standard prefixes"><code>++perd:so</code></a>
471481<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#perk' title="Parse cube fork"><code>++perk</code></a>
472−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse <=5 in base 32"><code>++pev:ab</code></a>
482+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse 1-5 @uv base-32 chars"><code>++pev:ab</code></a>
473483<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
474484<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#pfix' title="Discard first rule"><code>++pfix</code></a>
475485<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#pint' title="Parsing range"><code>+$pint</code></a>
476−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 digits in base 32"><code>++piv:ab</code></a>
477−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 digits in base 64"><code>++piw:ab</code></a>
486+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 @uv base-32 chars"><code>++piv:ab</code></a>
487+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 @uw base-64 chars"><code>++piw:ab</code></a>
478488<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#plug' title="Parse to tuple"><code>++plug</code></a>
479489<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#plus' title="List of at least one match"><code>++plus</code></a>
480490<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#po' title="Phonetic base"><code>++po</code></a>
@@ -495,9 +505,10 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
495505### q
496506
497507<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#qadyo' title="Seconds in 4 years"><code>++qad:yo</code></a>
498−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse <=4 binary digits"><code>++qeb:ab</code></a>
508+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qat' title="Parse chars in blockcord"><code>++qat</code></a>
509+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse 1-4 binary digits"><code>++qeb:ab</code></a>
499510<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#qeu' title="Mold generator (queue)"><code>++qeu</code></a>
500−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse <=4 hexadecimal digits"><code>++qex:ab</code></a>
511+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse 1-4 hex digits"><code>++qex:ab</code></a>
501512<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
502513<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
503514<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
@@ -536,6 +547,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
536547<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
537548<code>++rood</code>
538549<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rorfe' title="Roll right"><code>++ror:fe</code></a>
550+<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rose' title="Parse to each"><code>++rose</code></a>
539551<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#roufl' title="Round to nearest float with 113bit significand"><code>++rou:fl</code></a>
540552<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
541553<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
@@ -583,7 +595,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
583595<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
584596<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sedab' title="Parse nonzero decimal digit"><code>++sed:ab</code></a>
585597<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
586−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sem' title="Parse ; (sem)"><code>++sem</code></a>
598+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#mic' title="Parse ; (mic)"><code>++mic</code></a>
587599<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
588600<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#set' title="Mold generator (set)"><code>++set</code></a>
589601<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sevab' title="Parse nonzero base 32 digit"><code>++sev:ab</code></a>
@@ -640,8 +652,8 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
640652<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#some' title="Wrap value in unit"><code>++some</code></a>
641653<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
642654<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#sort' title="Quicksort (list)"><code>++sort</code></a>
643−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse base 32 letter"><code>++sov:ab</code></a>
644−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse base 64 letter/symbol"><code>++sow:ab</code></a>
655+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse @uv base-32 letter"><code>++sov:ab</code></a>
656+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse @uw base-64 letter/symbol"><code>++sow:ab</code></a>
645657<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
646658<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
647659<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#span' title="ASCII atom"><code>++span</code></a>
@@ -707,10 +719,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
707719<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tape' title="List of characters"><code>+$tape</code></a>
708720<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tarp' title="Parsed time"><code>+$tarp</code></a>
709721<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#tashso' title="Parse signed dime"><code>++tash:so</code></a>
710−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tec' title="Parse ` (tec)"><code>++tec</code></a>
711−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse decimal number with <= 3 digits"><code>++ted:ab</code></a>
722+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tic' title="Parse ` (tic)"><code>++tic</code></a>
723+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse 1-999 decimal"><code>++ted:ab</code></a>
712724<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#teff' title="UTF8 length"><code>++teff</code></a>
713725<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#tailob' title="Reverse +feis"><code>++tail:ob</code></a>
726+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tepab' title="Parse non-doz leading phonetic byte"><code>++tep:ab</code></a>
714727<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#term' title="Hoon constant"><code>+$term</code></a>
715728<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#test' title="Test for equality"><code>++test</code></a>
716729<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
@@ -761,8 +774,8 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
761774<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#unit' title="Mold generator (maybe)"><code>++unit</code></a>
762775<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#unoby' title="General union (map)"><code>++uno:by</code></a>
763776<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#urnby' title="Turn (with key) (map)"><code>++urn:by</code></a>
764−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse span characters"><code>++urs:ab</code></a>
765−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse non_ span"><code>++urt:ab</code></a>
777+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse knot characters"><code>++urs:ab</code></a>
778+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse knot without underscores"><code>++urt:ab</code></a>
766779
767780### v
768781
@@ -1526,6 +1539,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
15261539### 4g: parsing (outside caller)
15271540
15281541<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rash' title="Parse or crash"><code>++rash</code></a>
1542+<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rose' title="Parse to each"><code>++rose</code></a>
15291543<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
15301544<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
15311545<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#scan' title="Parse tape or crash"><code>++scan</code></a>
@@ -1553,15 +1567,15 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
15531567<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#lus' title="Parse + (lus)"><code>++lus</code></a>
15541568<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
15551569<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
1556−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pel' title="Parse ( (pel)"><code>++pel</code></a>
1557−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#per' title="Parse ) (per)"><code>++per</code></a>
1570+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pal' title="Parse ( (pal)"><code>++pal</code></a>
1571+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#par' title="Parse ) (par)"><code>++par</code></a>
15581572<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
1559−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sem' title="Parse ; (sem)"><code>++sem</code></a>
1573+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#mic' title="Parse ; (mic)"><code>++mic</code></a>
15601574<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
15611575<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sig' title="Parse ~ (sig)"><code>++sig</code></a>
15621576<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
15631577<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
1564−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tec' title="Parse ` (tec)"><code>++tec</code></a>
1578+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tic' title="Parse ` (tic)"><code>++tic</code></a>
15651579<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tis' title="Parse = (tis)"><code>++tis</code></a>
15661580<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#wut' title="Parse ? (wut)"><code>++wut</code></a>
15671581<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#zap' title="Parse ! (zap)"><code>++zap</code></a>
@@ -1577,6 +1591,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
15771591<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
15781592<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
15791593<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dit' title="Decimal digit"><code>++dit</code></a>
1594+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dof' title="Hep & optional gap"><code>++dof</code></a>
15801595<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
15811596<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
15821597<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dun' title=" to ~"><code>++dun</code></a>
@@ -1594,13 +1609,15 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
15941609<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#iny' title="Indentation block"><code>++iny</code></a>
15951610<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#low' title="Parse lowercase letter"><code>++low</code></a>
15961611<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mes' title="Parse hexabyte"><code>++mes</code></a>
1597−<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and "><code>++nix</code></a>
1612+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and underscore"><code>++nix</code></a>
15981613<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nud' title="Parse numeric character"><code>++nud</code></a>
15991614<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#prn' title="Parse any printable character"><code>++prn</code></a>
1615+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qat' title="Parse chars in blockcord"><code>++qat</code></a>
16001616<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
16011617<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qut' title="Parse cord"><code>++qut</code></a>
16021618<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
16031619<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#sym' title="Term"><code>++sym</code></a>
1620+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mixed-case-symbol' title="Mixed-case term"><code>++mixed-case-symbol</code></a>
16041621<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#ven' title="Axis syntax parser"><code>++ven</code></a>
16051622<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vit' title="Parse base 64 digit"><code>++vit</code></a>
16061623<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vul' title="Comments to null"><code>++vul</code></a>
@@ -1609,15 +1626,19 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
16091626
16101627<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ab' title="Primitive parser engine"><code>++ab</code></a>
16111628<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#bixab' title="Parse hex pair"><code>++bix:ab</code></a>
1629+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#femab' title="Parse base58check char"><code>++fem:ab</code></a>
1630+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hafab' title="Parse non-doz phonetic pair"><code>++haf:ab</code></a>
1631+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hefab' title="Parse non-dozzod phonetic pair"><code>++hef:ab</code></a>
16121632<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
1613−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse two phonetic pairs"><code>++huf:ab</code></a>
1614−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse 8 phonetic bytes"><code>++hyf:ab</code></a>
1615−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse <=5 in base 32"><code>++pev:ab</code></a>
1633+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hofab' title="Parse 2-4 @q phonetic pair"><code>++hof:ab</code></a>
1634+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse 1-4 @q phonetic pairs"><code>++huf:ab</code></a>
1635+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse four @q phonetic pairs"><code>++hyf:ab</code></a>
1636+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse 1-5 @uv base-32 chars"><code>++pev:ab</code></a>
16161637<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
1617−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 digits in base 32"><code>++piv:ab</code></a>
1618−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 digits in base 64"><code>++piw:ab</code></a>
1619−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse <=4 binary digits"><code>++qeb:ab</code></a>
1620−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse <=4 hexadecimal digits"><code>++qex:ab</code></a>
1638+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 @uv base-32 chars"><code>++piv:ab</code></a>
1639+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 @uw base-64 chars"><code>++piw:ab</code></a>
1640+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse 1-4 binary digits"><code>++qeb:ab</code></a>
1641+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse 1-4 hex digits"><code>++qex:ab</code></a>
16211642<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
16221643<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
16231644<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
@@ -1630,16 +1651,17 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
16301651<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sivab' title="Parse a base 32 digit"><code>++siv:ab</code></a>
16311652<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#siwab' title="Parse a base 64 digit"><code>++siw:ab</code></a>
16321653<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sixab' title="Parse a hexadecimal digit"><code>++six:ab</code></a>
1633−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse base 32 letter"><code>++sov:ab</code></a>
1634−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse base 64 letter/symbol"><code>++sow:ab</code></a>
1654+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse @uv base-32 letter"><code>++sov:ab</code></a>
1655+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse @uw base-64 letter/symbol"><code>++sow:ab</code></a>
16351656<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
1636−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse decimal number with <= 3 digits"><code>++ted:ab</code></a>
1657+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse 1-999 decimal"><code>++ted:ab</code></a>
1658+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tepab' title="Parse non-doz leading phonetic byte"><code>++tep:ab</code></a>
16371659<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
16381660<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tilab' title="Parse 3 lowercase letters"><code>++til:ab</code></a>
16391661<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tipab' title="Leading phonetic byte"><code>++tip:ab</code></a>
16401662<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tiqab' title="Trailing phonetic syllable"><code>++tiq:ab</code></a>
1641−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse span characters"><code>++urs:ab</code></a>
1642−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse non_ span"><code>++urt:ab</code></a>
1663+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse knot characters"><code>++urs:ab</code></a>
1664+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse knot without underscores"><code>++urt:ab</code></a>
16431665<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#voyab' title="Parse bas, soq, or bix"><code>++voy:ab</code></a>
16441666
16451667<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ag' title="Toplevel atom parser engine"><code>++ag</code></a>
@@ -1650,8 +1672,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
16501672<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dimag' title="Parse decimal number"><code>++dim:ag</code></a>
16511673<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dumag' title="Parse decimal with leading zero"><code>++dum:ag</code></a>
16521674<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fedag' title="Parse @p"><code>++fed:ag</code></a>
1675+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#feqag' title="Parse @q phonetic base"><code>++feq:ag</code></a>
1676+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fimag' title="Parse base58check"><code>++fim:ag</code></a>
16531677<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hexag' title="Parse hexadecimal number"><code>++hex:ag</code></a>
16541678<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#lipag' title="Parse IPv4 address"><code>++lip:ag</code></a>
1679+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#motag' title="Parse numerical month"><code>++mot:ag</code></a>
16551680<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vizag' title="Parse base 32 digit with dot separators"><code>++viz:ag</code></a>
16561681<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vumag' title="Parse base 32 string"><code>++vum:ag</code></a>
16571682<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wizag' title="Parse base 64 number"><code>++wiz:ag</code></a>
@@ -1662,6 +1687,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
16621687<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zugmu' title="Concatenate into atom"><code>++zug:mu</code></a>
16631688
16641689<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ne' title="Digit rendering engine"><code>++ne</code></a>
1690+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#cne' title="Render base58check"><code>++c:ne</code></a>
16651691<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dne' title="Render decimal"><code>++d:ne</code></a>
16661692<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vne' title="Render base 32"><code>++v:ne</code></a>
16671693<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
lib/glossary.js+116−25
@@ -1836,6 +1836,13 @@ export const glossary = [
18361836 slug: "https://urbit.org/docs/reference/library/2q/#byts",
18371837 desc: "Used in the Hoon standard library.",
18381838 },
1839+ {
1840+ name: "Render base58check",
1841+ symbol: "c:ne",
1842+ usage: "stdlib",
1843+ slug: "https://urbit.org/docs/reference/library/4j/#cne",
1844+ desc: "Used in the Hoon standard library.",
1845+ },
18391846 {
18401847 name: "Parse _ (cab)",
18411848 symbol: "cab",
@@ -2284,6 +2291,13 @@ export const glossary = [
22842291 slug: "https://urbit.org/docs/reference/library/3b/#divrq",
22852292 desc: "Used in the Hoon standard library.",
22862293 },
2294+ {
2295+ name: "Hep & optional gap",
2296+ symbol: "dof",
2297+ usage: "stdlib",
2298+ slug: "https://urbit.org/docs/reference/library/4i/#dof",
2299+ desc: "Used in the Hoon standard library.",
2300+ },
22872301 {
22882302 name: "Optional gap",
22892303 symbol: "dog",
@@ -2648,6 +2662,13 @@ export const glossary = [
26482662 slug: "https://urbit.org/docs/reference/library/3f/#feinob",
26492663 desc: "Used in the Hoon standard library.",
26502664 },
2665+ {
2666+ name: "Parse base58check character",
2667+ symbol: "fem:ab",
2668+ usage: "stdlib",
2669+ slug: "https://urbit.org/docs/reference/library/4j/#femab",
2670+ desc: "Used in the Hoon standard library.",
2671+ },
26512672 {
26522673 name: "Reverse +fe",
26532674 symbol: "fen:ob",
@@ -2655,6 +2676,13 @@ export const glossary = [
26552676 slug: "https://urbit.org/docs/reference/library/3f/#fenob",
26562677 desc: "Used in the Hoon standard library.",
26572678 },
2679+ {
2680+ name: "Parse @q phonetic base",
2681+ symbol: "feq:ag",
2682+ usage: "stdlib",
2683+ slug: "https://urbit.org/docs/reference/library/4j/#feqag",
2684+ desc: "Used in the Hoon standard library.",
2685+ },
26582686 {
26592687 name: "Restore structure v3",
26602688 symbol: "fynd:ob",
@@ -2676,6 +2704,13 @@ export const glossary = [
26762704 slug: "https://urbit.org/docs/reference/library/2c/#fil",
26772705 desc: "Used in the Hoon standard library.",
26782706 },
2707+ {
2708+ name: "Parse base58check",
2709+ symbol: "fim:ag",
2710+ usage: "stdlib",
2711+ slug: "https://urbit.org/docs/reference/library/4j/#fim:ag",
2712+ desc: "Used in the Hoon standard library.",
2713+ },
26792714 {
26802715 name: "First index in list",
26812716 symbol: "find",
@@ -3110,6 +3145,13 @@ export const glossary = [
31103145 slug: "https://urbit.org/docs/reference/library/2b/#gulf",
31113146 desc: "Used in the Hoon standard library.",
31123147 },
3148+ {
3149+ name: "Parse non-doz phonetic pair",
3150+ symbol: "haf:ab",
3151+ usage: "stdlib",
3152+ slug: "https://urbit.org/docs/reference/library/4j/#hafab",
3153+ desc: "Used in the Hoon standard library.",
3154+ },
31133155 {
31143156 name: "Parsing line and column",
31153157 symbol: "hair",
@@ -3152,6 +3194,13 @@ export const glossary = [
31523194 slug: "https://urbit.org/docs/reference/library/2n/#head",
31533195 desc: "Used in the Hoon standard library.",
31543196 },
3197+ {
3198+ name: "Parse non-dozzod phonetic pair",
3199+ symbol: "hef:ab",
3200+ usage: "stdlib",
3201+ slug: "https://urbit.org/docs/reference/library/4j/#hefab",
3202+ desc: "Used in the Hoon standard library.",
3203+ },
31553204 {
31563205 name: "Place-based apply",
31573206 symbol: "here",
@@ -3201,6 +3250,13 @@ export const glossary = [
32013250 slug: "https://urbit.org/docs/reference/library/4i/#hit",
32023251 desc: "Used in the Hoon standard library.",
32033252 },
3253+ {
3254+ name: "Parse 2-4 @q phonetic pairs",
3255+ symbol: "hof:ab",
3256+ usage: "stdlib",
3257+ slug: "https://urbit.org/docs/reference/library/4j/#hofab",
3258+ desc: "Used in the Hoon standard library.",
3259+ },
32043260 {
32053261 name: "Homogenize list",
32063262 symbol: "homo",
@@ -3216,7 +3272,7 @@ export const glossary = [
32163272 desc: "Used in the Hoon standard library.",
32173273 },
32183274 {
3219− name: "Parse two phonetic pairs",
3275+ name: "Parse 1-4 @q phonetic pairs",
32203276 symbol: "huf:ab",
32213277 usage: "stdlib",
32223278 slug: "https://urbit.org/docs/reference/library/4j/#hufab",
@@ -3230,7 +3286,7 @@ export const glossary = [
32303286 desc: "Used in the Hoon standard library.",
32313287 },
32323288 {
3233− name: "Parse 8 phonetic bytes",
3289+ name: "Parse four @q phonetic pairs",
32343290 symbol: "hyf:ab",
32353291 usage: "stdlib",
32363292 slug: "https://urbit.org/docs/reference/library/4j/#hyfab",
@@ -3859,6 +3915,13 @@ export const glossary = [
38593915 slug: "https://urbit.org/docs/reference/library/2d/#mix",
38603916 desc: "Used in the Hoon standard library.",
38613917 },
3918+ {
3919+ name: "Mixed-case term",
3920+ symbol: "mixed-case-symbol",
3921+ usage: "stdlib",
3922+ slug: "https://urbit.org/docs/reference/library/4i/#mixed-case-symbol",
3923+ desc: "Used in the Hoon standard library.",
3924+ },
38623925 {
38633926 name: "Compute formula on subject with hint",
38643927 symbol: "mock",
@@ -3922,6 +3985,13 @@ export const glossary = [
39223985 slug: "https://urbit.org/docs/reference/library/4f/#most",
39233986 desc: "Used in the Hoon standard library.",
39243987 },
3988+ {
3989+ name: "Parse numerical month",
3990+ symbol: "mot:ag",
3991+ usage: "stdlib",
3992+ slug: "https://urbit.org/docs/reference/library/4j/#mot",
3993+ desc: "Used in the Hoon standard library.",
3994+ },
39253995 {
39263996 name: "Days in months of leap-year",
39273997 symbol: "moy:yo",
@@ -4098,7 +4168,7 @@ export const glossary = [
40984168 desc: "Used in the Hoon standard library.",
40994169 },
41004170 {
4101− name: "Parse letters and -",
4171+ name: "Parse letters and underscore",
41024172 symbol: "nix",
41034173 usage: "stdlib",
41044174 slug: "https://urbit.org/docs/reference/library/4i/#nix",
@@ -4238,17 +4308,17 @@ export const glossary = [
42384308 desc: "Used in the Hoon standard library.",
42394309 },
42404310 {
4241− name: "Parse ( (pel)",
4242− symbol: "pel",
4311+ name: "Parse ( (pal)",
4312+ symbol: "pal",
42434313 usage: "stdlib",
4244− slug: "https://urbit.org/docs/reference/library/4h/#pel",
4314+ slug: "https://urbit.org/docs/reference/library/4h/#pal",
42454315 desc: "Used in the Hoon standard library.",
42464316 },
42474317 {
4248− name: "Parse ) (per)",
4249− symbol: "per",
4318+ name: "Parse ) (par)",
4319+ symbol: "par",
42504320 usage: "stdlib",
4251− slug: "https://urbit.org/docs/reference/library/4h/#per",
4321+ slug: "https://urbit.org/docs/reference/library/4h/#par",
42524322 desc: "Used in the Hoon standard library.",
42534323 },
42544324 {
@@ -4266,7 +4336,7 @@ export const glossary = [
42664336 desc: "Used in the Hoon standard library.",
42674337 },
42684338 {
4269− name: "Parse <=5 in base 32",
4339+ name: "Parse 1-5 @uv base-32 chars",
42704340 symbol: "pev:ab",
42714341 usage: "stdlib",
42724342 slug: "https://urbit.org/docs/reference/library/4j/#pevab",
@@ -4294,14 +4364,14 @@ export const glossary = [
42944364 desc: "Used in the Hoon standard library.",
42954365 },
42964366 {
4297− name: "Parse 5 digits in base 32",
4367+ name: "Parse 5 @uv base-32 chars",
42984368 symbol: "piv:ab",
42994369 usage: "stdlib",
43004370 slug: "https://urbit.org/docs/reference/library/4j/#pivab",
43014371 desc: "Used in the Hoon standard library.",
43024372 },
43034373 {
4304− name: "Parse 5 digits in base 64",
4374+ name: "Parse 5 @uw base-64 chars",
43054375 symbol: "piw:ab",
43064376 usage: "stdlib",
43074377 slug: "https://urbit.org/docs/reference/library/4j/#piwab",
@@ -4427,7 +4497,14 @@ export const glossary = [
44274497 desc: "Used in the Hoon standard library.",
44284498 },
44294499 {
4430− name: "Parse <=4 binary digits",
4500+ name: "Chors in blockcord",
4501+ symbol: "qat",
4502+ usage: "stdlib",
4503+ slug: "https://urbit.org/docs/reference/library/4i/#qat",
4504+ desc: "Used in the Hoon standard library.",
4505+ },
4506+ {
4507+ name: "Parse 1-4 binary digits",
44314508 symbol: "qeb:ab",
44324509 usage: "stdlib",
44334510 slug: "https://urbit.org/docs/reference/library/4j/#qebab",
@@ -4441,7 +4518,7 @@ export const glossary = [
44414518 desc: "Used in the Hoon standard library.",
44424519 },
44434520 {
4444− name: "Parse <=4 hexadecimal digits",
4521+ name: "Parse 1-4 hex digits",
44454522 symbol: "qex:ab",
44464523 usage: "stdlib",
44474524 slug: "https://urbit.org/docs/reference/library/4j/#qexab",
@@ -4678,6 +4755,13 @@ export const glossary = [
46784755 slug: "https://urbit.org/docs/reference/library/2c/#rorfe",
46794756 desc: "Used in the Hoon standard library.",
46804757 },
4758+ {
4759+ name: "Parse to each",
4760+ symbol: "rose",
4761+ usage: "stdlib",
4762+ slug: "https://urbit.org/docs/reference/library/4g/#rose",
4763+ desc: "Used in the Hoon standard library.",
4764+ },
46814765 {
46824766 name: "Round to nearest float with 113-bit significand",
46834767 symbol: "rou:fl",
@@ -4987,10 +5071,10 @@ export const glossary = [
49875071 desc: "Used in the Hoon standard library.",
49885072 },
49895073 {
4990− name: "Parse ; (sem)",
4991− symbol: "sem",
5074+ name: "Parse ; (mic)",
5075+ symbol: "mic",
49925076 usage: "stdlib",
4993− slug: "https://urbit.org/docs/reference/library/4h/#sem",
5077+ slug: "https://urbit.org/docs/reference/library/4h/#mic",
49945078 desc: "Used in the Hoon standard library.",
49955079 },
49965080 {
@@ -5386,14 +5470,14 @@ export const glossary = [
53865470 desc: "Used in the Hoon standard library.",
53875471 },
53885472 {
5389− name: "Parse base 32 letter",
5473+ name: "Parse @uv base-32 letter",
53905474 symbol: "sov:ab",
53915475 usage: "stdlib",
53925476 slug: "https://urbit.org/docs/reference/library/4j/#sovab",
53935477 desc: "Used in the Hoon standard library.",
53945478 },
53955479 {
5396− name: "Parse base 64 letter/symbol",
5480+ name: "Parse @uw base-64 letter/symbol",
53975481 symbol: "sow:ab",
53985482 usage: "stdlib",
53995483 slug: "https://urbit.org/docs/reference/library/4j/#sowab",
@@ -5834,14 +5918,14 @@ export const glossary = [
58345918 desc: "Used in the Hoon standard library.",
58355919 },
58365920 {
5837− name: "Parse ` (tec)",
5838− symbol: "tec",
5921+ name: "Parse ` (tic)",
5922+ symbol: "tic",
58395923 usage: "stdlib",
5840− slug: "https://urbit.org/docs/reference/library/4h/#tec",
5924+ slug: "https://urbit.org/docs/reference/library/4h/#tic",
58415925 desc: "Used in the Hoon standard library.",
58425926 },
58435927 {
5844− name: "Parse decimal number with <= 3 digits",
5928+ name: "Parse 1-999 decimal",
58455929 symbol: "ted:ab",
58465930 usage: "stdlib",
58475931 slug: "https://urbit.org/docs/reference/library/4j/#tedab",
@@ -5854,6 +5938,13 @@ export const glossary = [
58545938 slug: "https://urbit.org/docs/reference/library/4b/#teff",
58555939 desc: "Used in the Hoon standard library.",
58565940 },
5941+ {
5942+ name: "Parse non-doz leading phonetic byte",
5943+ symbol: "tep:ab",
5944+ usage: "stdlib",
5945+ slug: "https://urbit.org/docs/reference/library/4j/#tep:ab",
5946+ desc: "Used in the Hoon standard library.",
5947+ },
58575948 {
58585949 name: "Reverse +feis",
58595950 symbol: "tail:ob",
@@ -6191,14 +6282,14 @@ export const glossary = [
61916282 desc: "Used in the Hoon standard library.",
61926283 },
61936284 {
6194− name: "Parse span characters",
6285+ name: "Parse knot characters",
61956286 symbol: "urs:ab",
61966287 usage: "stdlib",
61976288 slug: "https://urbit.org/docs/reference/library/4j/#ursab",
61986289 desc: "Used in the Hoon standard library.",
61996290 },
62006291 {
6201− name: "Parse non-_ span",
6292+ name: "Parse knot without underscores",
62026293 symbol: "urt:ab",
62036294 usage: "stdlib",
62046295 slug: "https://urbit.org/docs/reference/library/4j/#urtab",