on master help sign in
update stdlib sections 4a and 4b

- 4a - add fa, cha:fa, tok:fa, pad:fa, enc:fa, dem:fa - update ToC and glossary.js as appropriate - refresh existing functions - 4b - add missing documentation to ++at functions - change +turf to +taft - update ToC and glossary.js entries as appropriate - refresh existing entries

commit45bf7eefb4006d4c73eec8cc84ce66ad32fecb9f authorTinnus Napbus <admin@tinnus-napbus.xyz> dateThu 30 Dec 2021, 05:29 (5 years ago) parent4d7cd1a
4 files changed+1225−641
content/docs/hoon/reference/stdlib/4a.md+294−91 content/docs/hoon/reference/stdlib/4b.md+823−496 content/docs/hoon/reference/stdlib/table-of-contents.md+44−32 lib/glossary.js+64−22
content/docs/hoon/reference/stdlib/4a.md+294−91
@@ -15,42 +15,42 @@ contained arms.
1515#### Source
1616
1717```hoon
18− ~/ %po
19− =+ :- ^= sis :: prefix syllables
20− 'dozmarbinwansamlitsighidfidlissogdirwacsabwissib\
21− /rigsoldopmodfoglidhopdardorlorhodfolrintogsilmir\
22− /holpaslacrovlivdalsatlibtabhanticpidtorbolfosdot\
23− /losdilforpilramtirwintadbicdifrocwidbisdasmidlop\
24− /rilnardapmolsanlocnovsitnidtipsicropwitnatpanmin\
25− /ritpodmottamtolsavposnapnopsomfinfonbanmorworsip\
26− /ronnorbotwicsocwatdolmagpicdavbidbaltimtasmallig\
27− /sivtagpadsaldivdactansidfabtarmonranniswolmispal\
28− /lasdismaprabtobrollatlonnodnavfignomnibpagsopral\
29− /bilhaddocridmocpacravripfaltodtiltinhapmicfanpat\
30− /taclabmogsimsonpinlomrictapfirhasbosbatpochactid\
31− /havsaplindibhosdabbitbarracparloddosbortochilmac\
32− /tomdigfilfasmithobharmighinradmashalraglagfadtop\
33− /mophabnilnosmilfopfamdatnoldinhatnacrisfotribhoc\
34− /nimlarfitwalrapsarnalmoslandondanladdovrivbacpol\
35− /laptalpitnambonrostonfodponsovnocsorlavmatmipfip'
36− ^= dex :: suffix syllables
37− 'zodnecbudwessevpersutletfulpensytdurwepserwylsun\
38− /rypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnex\
39− /lunmeplutseppesdelsulpedtemledtulmetwenbynhexfeb\
40− /pyldulhetmevruttylwydtepbesdexsefwycburderneppur\
41− /rysrebdennutsubpetrulsynregtydsupsemwynrecmegnet\
42− /secmulnymtevwebsummutnyxrextebfushepbenmuswyxsym\
43− /selrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpel\
44− /syptermebsetdutdegtexsurfeltudnuxruxrenwytnubmed\
45− /lytdusnebrumtynseglyxpunresredfunrevrefmectedrus\
46− /bexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermer\
47− /tenlusnussyltecmexpubrymtucfyllepdebbermughuttun\
48− /bylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmyl\
49− /wedducfurfexnulluclennerlexrupnedlecrydlydfenwel\
50− /nydhusrelrudneshesfetdesretdunlernyrsebhulryllud\
51− /remlysfynwerrycsugnysnyllyndyndemluxfedsedbecmun\
52− /lyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes'
53− |%
18+~/ %po
19+=+ :- ^= sis :: prefix syllables
20+ 'dozmarbinwansamlitsighidfidlissogdirwacsabwissib\
21+ /rigsoldopmodfoglidhopdardorlorhodfolrintogsilmir\
22+ /holpaslacrovlivdalsatlibtabhanticpidtorbolfosdot\
23+ /losdilforpilramtirwintadbicdifrocwidbisdasmidlop\
24+ /rilnardapmolsanlocnovsitnidtipsicropwitnatpanmin\
25+ /ritpodmottamtolsavposnapnopsomfinfonbanmorworsip\
26+ /ronnorbotwicsocwatdolmagpicdavbidbaltimtasmallig\
27+ /sivtagpadsaldivdactansidfabtarmonranniswolmispal\
28+ /lasdismaprabtobrollatlonnodnavfignomnibpagsopral\
29+ /bilhaddocridmocpacravripfaltodtiltinhapmicfanpat\
30+ /taclabmogsimsonpinlomrictapfirhasbosbatpochactid\
31+ /havsaplindibhosdabbitbarracparloddosbortochilmac\
32+ /tomdigfilfasmithobharmighinradmashalraglagfadtop\
33+ /mophabnilnosmilfopfamdatnoldinhatnacrisfotribhoc\
34+ /nimlarfitwalrapsarnalmoslandondanladdovrivbacpol\
35+ /laptalpitnambonrostonfodponsovnocsorlavmatmipfip'
36+ ^= dex :: suffix syllables
37+ 'zodnecbudwessevpersutletfulpensytdurwepserwylsun\
38+ /rypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnex\
39+ /lunmeplutseppesdelsulpedtemledtulmetwenbynhexfeb\
40+ /pyldulhetmevruttylwydtepbesdexsefwycburderneppur\
41+ /rysrebdennutsubpetrulsynregtydsupsemwynrecmegnet\
42+ /secmulnymtevwebsummutnyxrextebfushepbenmuswyxsym\
43+ /selrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpel\
44+ /syptermebsetdutdegtexsurfeltudnuxruxrenwytnubmed\
45+ /lytdusnebrumtynseglyxpunresredfunrevrefmectedrus\
46+ /bexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermer\
47+ /tenlusnussyltecmexpubrymtucfyllepdebbermughuttun\
48+ /bylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmyl\
49+ /wedducfurfexnulluclennerlexrupnedlecrydlydfenwel\
50+ /nydhusrelrudneshesfetdesretdunlernyrsebhulryllud\
51+ /remlysfynwerrycsugnysnyllyndyndemluxfedsedbecmun\
52+ /lyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes'
53+|%
5454```
5555
5656---
@@ -63,33 +63,37 @@ Produces the byte of the right-hand syllable `a`.
6363
6464#### Accepts
6565
66−`a` is an atom.
66+`a` is a `@tas`.
6767
6868#### Produces
6969
70−A `unit`.
70+A `(unit @)`.
7171
7272#### Source
7373
7474```hoon
75− ++ ind ~/ %ind
76− |= a=@tas
77− =+ b=0
78− |- ^- (unit @)
79− ?:(=(256 b) ~ ?:(=(a (tod b)) [~ b] $(b +(b))))
75+++ ind ~/ %ind
76+ |= a=@tas
77+ =+ b=0
78+ |- ^- (unit @)
79+ ?:(=(256 b) ~ ?:(=(a (tod b)) [~ b] $(b +(b))))
8080```
8181
8282#### Examples
8383
8484```
85− > (ind:po 'zod')
86− [~ 0]
85+> (ind:po %zod)
86+[~ 0]
87+```
8788
88− > (ind:po 'zam')
89− ~
89+```
90+> (ind:po %foo)
91+~
92+```
9093
91− > (ind:po 'del')
92− [~ 37]
94+```
95+> (ind:po %wet)
96+[~ 101]
9397```
9498
9599---
@@ -102,36 +106,37 @@ Produces the byte of the left-hand phonetic syllable `a`.
102106
103107#### Accepts
104108
105−`a` is an atom.
109+`a` is a `@tas`.
106110
107111#### Produces
108112
109−A `unit` of an atom.
113+A `(unit @)`.
110114
111115#### Source
112116
113117```hoon
114− ++ ins ~/ %ins
115− |= a=@tas
116− =+ b=0
117− |- ^- (unit @)
118− ?:(=(256 b) ~ ?:(=(a (tos b)) [~ b] $(b +(b))))
118+++ ins ~/ %ins
119+ |= a=@tas
120+ =+ b=0
121+ |- ^- (unit @)
122+ ?:(=(256 b) ~ ?:(=(a (tos b)) [~ b] $(b +(b))))
119123```
120124
121125#### Examples
122126
123127```
124− > (ins:po 'mar')
125− [~ 1]
126−
127− > (ins:po 'son')
128− [~ 164]
128+> (ins:po %doz)
129+[~ 0]
130+```
129131
130− > (ins:po 'pit')
131− [~ 242]
132+```
133+> (ins:po %foo)
134+~
135+```
132136
133− > (ins:po 'pok')
134− ~
137+```
138+> (ins:po %pit)
139+[~ 242]
135140```
136141
137142---
@@ -153,30 +158,30 @@ An atom.
153158#### Source
154159
155160```hoon
156− ++ tod ~/ %tod
157− |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] dex)))
161+++ tod ~/ %tod
162+ |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] dex)))
158163```
159164
160165#### Examples
161166
162167```
163− > `@t`(tod:po 1)
164− 'nec'
165−
166− > `@t`(tod:po 98)
167− 'dec'
168−
169− > `@t`(tod:po 0)
170− 'zod'
168+> `@t`(tod:po 0)
169+'zod'
170+```
171171
172− > `@t`(tod:po 150)
173− 'ryg'
172+```
173+> `@t`(tod:po 100)
174+'syr'
175+```
174176
175− > `@t`(tod:po 255)
176− 'fes'
177+```
178+> `@t`(tod:po 255)
179+'fes'
180+```
177181
178− > `@t`(tod:po 256)
179− ! exit
182+```
183+> `@t`(tod:po 256)
184+dojo: hoon expression failed
180185```
181186
182187---
@@ -198,24 +203,222 @@ An atom.
198203#### Source
199204
200205```hoon
201− ++ tos ~/ %tos
202− |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
206+++ tos ~/ %tos
207+ |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
208+```
209+
210+#### Examples
211+
212+```
213+> `@t`(tos:po 0)
214+'doz'
215+```
216+
217+```
218+> `@t`(tos:po 100)
219+'soc'
220+```
221+
222+```
223+> `@t`(tos:po 255)
224+'fip'
225+```
226+
227+```
228+> `@t`(tos:po 256)
229+dojo: hoon expression failed
230+```
231+
232+---
233+
234+## `++fa`
235+
236+base58check
237+
238+Container core for base58check (e.g. bitcoin address) functions.
239+
240+#### Source
241+
242+```hoon
243+++ fa
244+ =+ key='123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
245+ =/ yek=@ux ~+
246+ =- yek:(roll (rip 3 key) -)
247+ =+ [a=*char b=*@ yek=`@ux`(fil 3 256 0xff)]
248+ |.
249+ [+(b) (mix yek (lsh [3 `@u`a] (~(inv fe 3) b)))]
250+ |%
251+```
252+
253+---
254+
255+### `++cha:fa`
256+
257+Decode base58check character
258+
259+Check whether character `a` is valid in base58check encoding, producing a `unit` of its decoded value if it's valid, and a null `unit` if it's not.
260+
261+#### Accepts
262+
263+`a` is a `char`.
264+
265+#### Produces
266+
267+A `(unit @uF)`.
268+
269+#### Source
270+
271+```hoon
272+++ cha |=(a=char `(unit @uF)`=+(b=(cut 3 [`@`a 1] yek) ?:(=(b 0xff) ~ `b)))
203273```
204274
205275#### Examples
206276
207277```
208− > `@t`(tos:po 0)
209− 'doz'
278+> (cha:fa 'Z')
279+[~ 32]
280+```
281+
282+```
283+> (cha:fa 'n')
284+[~ 45]
285+```
210286
211− > `@t`(tos:po 120)
212− 'fab'
287+```
288+> (cha:fa 'l')
289+~
290+```
213291
214− > `@t`(tos:po 43)
215− 'pid'
292+---
293+
294+### `++tok:fa`
295+
296+Compute base58check checksum
297+
298+Compute the base58check checksum of `a`.
299+
300+#### Accepts
301+
302+`a` is a `@ux`.
303+
304+#### Produces
216305
217− > `@t`(tos:po 253)
218− 'mat'
306+A `@ux`.
307+
308+#### Source
309+
310+```hoon
311+++ tok
312+ |= a=@ux ^- @ux
313+ =+ b=(pad a)
314+ =- (~(net fe 5) (end [3 4] (shay 32 -)))
315+ (shay (add b (met 3 a)) (lsh [3 b] (swp 3 a)))
316+```
317+
318+#### Examples
319+
320+```
321+> (tok:fa 0xdead.beef)
322+0x938b.8b0c
323+```
324+
325+---
326+
327+### `++pad:fa`
328+
329+base58check padding bytes
330+
331+Compute the number of bytes of 0s needed to pad `a` to 21 bytes, if it's less
332+than 21 bytes.
333+
334+#### Accepts
335+
336+`a` is a `@` - a value without its base58check checksum.
337+
338+#### Produces
339+
340+A `@`.
341+
342+#### Source
343+
344+```hoon
345+++ pad |=(a=@ =+(b=(met 3 a) ?:((gte b 21) 0 (sub 21 b))))
346+```
347+
348+#### Examples
349+
350+```
351+> (pad:fa 0xdead.beef)
352+17
353+```
354+
355+---
356+
357+### `++enc:fa`
358+
359+encode base58check
360+
361+Compute and append checksum to `a`.
362+
363+#### Accepts
364+
365+`a` is a `@ux`.
366+
367+#### Produces
368+
369+A `@ux`.
370+
371+#### Source
372+
373+```hoon
374+++ enc |=(a=@ux `@ux`(mix (lsh [3 4] a) (tok a)))
375+```
376+
377+#### Example
378+
379+```
380+> (enc:fa 0xdead.beef)
381+0xdead.beef.938b.8b0c
382+```
383+
384+---
385+
386+### `++den:fa`
387+
388+decode base58check
389+
390+Check checksum of `a`, return a `unit` of `a` sans the checksum if successful,
391+or a null `unit` otherwise.
392+
393+#### Accepts
394+
395+`a` is a `@ux`
396+
397+#### Produces
398+
399+A `(unit @ux)`.
400+
401+#### Source
402+
403+```hoon
404+++ den
405+ |= a=@ux ^- (unit @ux)
406+ =+ b=(rsh [3 4] a)
407+ ?. =((tok b) (end [3 4] a))
408+ ~
409+ `b
410+```
411+
412+#### Examples
413+
414+```
415+> (den:fa 0xdead.beef.938b.8b0c)
416+[~ 0xdead.beef]
417+```
418+
419+```
420+> (den:fa 0xdead.beef.1111.1111)
421+~
219422```
220423
221424---
content/docs/hoon/reference/stdlib/4b.md+823−496
@@ -6,174 +6,492 @@ template = "doc.html"
66
77## `++at`
88
9+Basic printing
10+
11+Container core for basic atom printing functions.
12+
13+**Note that these are largely deprecated, using outdated syntax, character
14+mappings and encodings, and should generally not be used.**
15+
16+#### Accepts
17+
18+`a` is a `@`.
19+
20+#### Source
21+
922```hoon
10− ++ at
11− |_ a=@
23+++ at
24+ |_ a=@
1225```
1326
14−XX document
27+---
1528
1629### `++r:at`
1730
31+Print term, number or hex
32+
33+If `a` is composed of the letters `a` through `z` and `-`, print as `@tas`
34+syntax. If `a` is an atom of two bytes or less, print as an integer with
35+comma-separated thousands. Otherwise, print `a` as `@ux` syntax.
36+
37+#### Accepts
38+
39+`a` is a `@`, and is the sample of `++at`.
40+
41+#### Produces
42+
43+A `tape`.
44+
45+#### Source
46+
1847```hoon
19− ++ r
20− ?: ?& (gte (met 3 a) 2)
21− |-
22− ?: =(0 a)
23− &
24− =+ vis=(end 3 1 a)
25− ?& ?|(=('-' vis) ?&((gte vis 'a') (lte vis 'z')))
26− $(a (rsh 3 1 a))
27− ==
28− ==
29− rtam
30− ?: (lte (met 3 a) 2)
31− rud
32− rux
33−```
34−
35−XX document
48+++ r
49+ ?: ?& (gte (met 3 a) 2)
50+ |-
51+ ?: =(0 a)
52+ &
53+ =+ vis=(end 3 a)
54+ ?& ?|(=('-' vis) ?&((gte vis 'a') (lte vis 'z')))
55+ $(a (rsh 3 a))
56+ ==
57+ ==
58+ rtam
59+ ?: (lte (met 3 a) 2)
60+ rud
61+ rux
62+```
63+
64+#### Examples
65+
66+```
67+> ~(r at 'foo-bar')
68+"%foo-bar"
69+```
70+
71+```
72+> ~(r at 0xbeef)
73+"48,879"
74+```
75+
76+```
77+> ~(r at 0xdead.beef)
78+"0xdead-beef"
79+```
80+
81+---
3682
3783### `++rf:at`
3884
85+Print loobean
86+
87+If `a` is a loobean, print as `|`/`&`, otherwise crash.
88+
89+#### Accepts
90+
91+`a` is a `@`, and is the sample of `++at`.
92+
93+#### Produces
94+
95+A `tape`.
96+
97+#### Source
98+
3999```hoon
40− ++ rf `tape`[?-(a $& '&', $| '|', * !!) ~]
100+++ rf `tape`[?-(a %& '&', %| '|', * !!) ~]
101+```
102+
103+#### Examples
104+
105+```
106+> ~(rf at %.y)
107+"&"
41108```
42109
43−XX document
110+```
111+> ~(rf at %.n)
112+"|"
113+```
114+
115+```
116+> ~(rf at 'foo')
117+dojo: hoon expression failed
118+```
119+
120+---
44121
45122### `++rn:at`
46123
124+Print null
125+
126+If `a` is null, print `~`, otherwise crash.
127+
128+#### Accepts
129+
130+`a` is a `@`, and is the sample of `++at`.
131+
132+#### Produces
133+
134+A `tape`.
135+
136+#### Source
137+
47138```hoon
48− ++ rn `tape`[?>(=(0 a) '~') ~]
139+++ rn `tape`[?>(=(0 a) '~') ~]
140+```
141+
142+#### Examples
143+
144+```
145+> ~(rn at ~)
146+"~"
49147```
50148
51−XX document
149+```
150+> ~(rn at 'foo')
151+dojo: hoon expression failed
152+```
52153
53154### `++rt:at`
54155
156+Print cord, including escape characters
157+
158+Print `a` with `cord` syntax, including escape characters.
159+
160+#### Accepts
161+
162+`a` is a `@`, and the sample of `++at`.
163+
164+#### Produces
165+
166+A `tape`.
167+
168+#### Source
169+
55170```hoon
56− ++ rt `tape`['\'' (weld (mesc (trip a)) `tape`['\'' ~])]
171+++ rt `tape`['\'' (weld (mesc (trip a)) `tape`['\'' ~])]
172+```
173+
174+#### Examples
175+
176+```
177+> ~(rt at 'foo')
178+"'foo'"
179+```
180+
181+```
182+> ~(rt at 'fo\\o')
183+"'fo\\\\o'"
184+```
185+
186+```
187+> ~(rt at 'fo\'o')
188+"'fo\\0x27/o'"
57189```
58190
59−XX document
191+---
60192
61193### `++rta:at`
62194
195+Same as `++rt:at`
196+
197+#### Source
198+
63199```hoon
64− ++ rta rt
200+++ rta rt
65201```
66202
67−XX document
203+---
68204
69205### `++rtam:at`
70206
207+Print cord with `@tas` syntax
208+
209+Treat `a` as `cord`, print it with `%` prefix.
210+
211+#### Accepts
212+
213+`a` is a `@`, and is the sample of `++at`.
214+
215+#### Produces
216+
217+A `tape`.
218+
219+#### Source
220+
71221```hoon
72− ++ rtam `tape`['%' (trip a)]
222+++ rtam `tape`['%' (trip a)]
73223```
74224
75−XX document
225+#### Examples
226+
227+```
228+> ~(rtam at 'foo')
229+"%foo"
230+```
231+
232+```
233+> ~(rtam at '12')
234+"%12"
235+```
236+
237+```
238+> ~(rtam at '!!!')
239+"%!!!"
240+```
241+
242+---
76243
77244### `++rub:at`
78245
246+Print binary
247+
248+Print `a` as `@ub` syntax, except with `-` separators rather than `.` separators.
249+
250+#### Accepts
251+
252+`a` is a `@`, and is the sample of `++at`.
253+
254+#### Produces
255+
256+A `tape`.
257+
258+#### Source
259+
79260```hoon
80− ++ rub `tape`['0' 'b' (rum 2 ~ |=(b/@ (add '0' b)))]
261+++ rub `tape`['0' 'b' (rum 2 ~ |=(b=@ (add '0' b)))]
262+```
263+
264+#### Examples
265+
266+```
267+> ~(rub at 0xbeef)
268+"0b1011-1110-1110-1111"
81269```
82270
83−XX document
271+---
84272
85273### `++rud:at`
86274
275+Print atom as integer
276+
277+Print atom `a` as an integer, with commas separating thousands.
278+
279+#### Accepts
280+
281+`a` is a `@`.
282+
283+#### Produces
284+
285+A `tape`.
286+
287+#### Source
288+
87289```hoon
88− ++ rud (rum 10 ~ |=(b/@ (add '0' b)))
290+++ rud (rum 10 ~ |=(b=@ (add '0' b)))
89291```
90292
91−XX document
293+#### Examples
294+
295+```
296+> ~(rud at 0xbeef)
297+"48,879"
298+```
299+
300+---
92301
93302### `++rum:at`
94303
304+Print base-n
305+
306+Print `a` as base `b` with suffix `c` and using gate `d` to convert blocks to
307+characters. Each set of four characters will be separated by `-`, except for
308+base 10 which will be printed with commas separating thousands.
309+
310+#### Accepts
311+
312+- `a` is a `@`, and is the sample of `++at`
313+- `b` is a `@`, denoting the the base.
314+- `c` is a `tape`, and will be appended to the end of the result.
315+- `d` is a `gate` that takes `@` and produces `@`.
316+
317+#### Produces
318+
319+A `tape`.
320+
321+#### Source
322+
95323```hoon
96− ++ rum
97− |= {b/@ c/tape d/$-(@ @)}
98− ^- tape
99− ?: =(0 a)
100− [(d 0) c]
101− =+ e=0
102− |- ^- tape
103− ?: =(0 a)
104− c
105− =+ f=&(!=(0 e) =(0 (mod e ?:(=(10 b) 3 4))))
106− %= $
107− a (div a b)
108− c [(d (mod a b)) ?:(f [?:(=(10 b) ',' '-') c] c)]
109− e +(e)
110− ==
111− ::
324+++ rum
325+ |= [b=@ c=tape d=$-(@ @)]
326+ ^- tape
327+ ?: =(0 a)
328+ [(d 0) c]
329+ =+ e=0
330+ |- ^- tape
331+ ?: =(0 a)
332+ c
333+ =+ f=&(!=(0 e) =(0 (mod e ?:(=(10 b) 3 4))))
334+ %= $
335+ a (div a b)
336+ c [(d (mod a b)) ?:(f [?:(=(10 b) ',' '-') c] c)]
337+ e +(e)
338+ ==
339+```
340+
341+#### Examples
342+
343+```
344+> (~(rum at 0xdead.beef) 10 ~ |=(b=@ (add '0' b)))
345+"3,735,928,559"
346+```
347+
348+```
349+> (~(rum at 0xdead.beef) 10 " m/s" |=(b=@ (add '0' b)))
350+"3,735,928,559 m/s"
351+```
352+
353+```
354+> (~(rum at 0xdead.beef) 2 ~ |=(b=@ (add '0' b)))
355+"1101-1110-1010-1101-1011-1110-1110-1111"
112356```
113357
114−XX document
358+---
115359
116360### `++rup:at`
117361
362+Print `@p` (outdated)
363+
364+Print `a` as an `@p`, but with outdated syntax and number<->syllable mapping. This
365+function almost certainly should not be used.
366+
367+#### Accepts
368+
369+`a` is a `@`.
370+
371+#### Produces
372+
373+A `tape`.
374+
375+#### Source
376+
118377```hoon
119− ++ rup
120− =+ b=(met 3 a)
121− ^- tape
122− :- '-'
123− |- ^- tape
124− ?: (gth (met 5 a) 1)
125− %+ weld
126− $(a (rsh 5 1 a), b (sub b 4))
127− `tape`['-' '-' $(a (end 5 1 a), b 4)]
128− ?: =(0 b)
129− ['~' ~]
130− ?: (lte b 1)
131− (trip (tos:po a))
132− |- ^- tape
133− ?: =(2 b)
134− =+ c=(rsh 3 1 a)
135− =+ d=(end 3 1 a)
136− (weld (trip (tod:po c)) (trip (tos:po (mix c d))))
137− =+ c=(rsh 3 2 a)
138− =+ d=(end 3 2 a)
139− (weld ^$(a c, b (met 3 c)) `tape`['-' $(a (mix c d), b 2)])
140− ::
141−```
142−
143−XX document
378+++ rup
379+ =+ b=(met 3 a)
380+ ^- tape
381+ :- '-'
382+ |- ^- tape
383+ ?: (gth (met 5 a) 1)
384+ %+ weld
385+ $(a (rsh 5 a), b (sub b 4))
386+ `tape`['-' '-' $(a (end 5 a), b 4)]
387+ ?: =(0 b)
388+ ['~' ~]
389+ ?: (lte b 1)
390+ (trip (tos:po a))
391+ |- ^- tape
392+ ?: =(2 b)
393+ =+ c=(rsh 3 a)
394+ =+ d=(end 3 a)
395+ (weld (trip (tod:po c)) (trip (tos:po (mix c d))))
396+ =+ c=(rsh [3 2] a)
397+ =+ d=(end [3 2] a)
398+ (weld ^$(a c, b (met 3 c)) `tape`['-' $(a (mix c d), b 2)])
399+```
400+
401+#### Examples
402+
403+```
404+> ~(rup at 0xdead.beef)
405+"-rylsal-sellac"
406+```
407+
408+```
409+> ~(rup at ~sampel-palnet)
410+"-sellod-lebdiv"
411+```
412+
413+```
414+> ~(rup at ~zod)
415+"-~"
416+```
417+
418+---
144419
145420### `++ruv:at`
146421
422+Print base-64
423+
424+Print `a` as **outdated** base-64 syntax, with `0v` rather than `0w` prefix,
425+different character mappings and separators.
426+
427+#### Accepts
428+
429+`a` is a `@`, and is the sample of `++at`.
430+
431+#### Produces
432+
433+A `tape`.
434+
435+#### Source
436+
147437```hoon
148− ++ ruv
149− ^- tape
150− :+ '0'
151− 'v'
152− %^ rum
153− 64
154− ~
155− |= b/@
156− ?: =(63 b)
157− '+'
158− ?: =(62 b)
159− '-'
160− ?:((lth b 26) (add 65 b) ?:((lth b 52) (add 71 b) (sub b 4)))
161− ::
162−```
163−
164−XX document
438+++ ruv
439+ ^- tape
440+ :+ '0'
441+ 'v'
442+ %^ rum
443+ 64
444+ ~
445+ |= b=@
446+ ?: =(63 b)
447+ '+'
448+ ?: =(62 b)
449+ '-'
450+ ?:((lth b 26) (add 65 b) ?:((lth b 52) (add 71 b) (sub b 4)))
451+```
452+
453+#### Examples
454+
455+```
456+> ~(ruv at 0xdead.beef)
457+"0vDe-rb7v"
458+```
459+
460+Note this is how it should be rendered:
461+
462+```
463+> `@uw`0xdead.beef
464+0w3.uHrXL
465+```
466+
467+---
165468
166469### `++rux:at`
167470
471+Print hexadecimal
472+
473+Print `a` as `@ux` except with `-` separators rather than `.`s.
474+
475+#### Accepts
476+
477+`a` is a `@`, and is the sample of `++at`.
478+
479+#### Produces
480+
481+A `tape`.
482+
483+#### Source
484+
168485```hoon
169− ++ rux `tape`['0' 'x' (rum 16 ~ |=(b/@ (add b ?:((lth b 10) 48 87))))]
170− --
171− :::::::::::::::::::::::::::::::::::::::::::::::::::::: ::
486+++ rux `tape`['0' 'x' (rum 16 ~ |=(b=@ (add b ?:((lth b 10) 48 87))))]
172487```
173488
174−XX document
489+#### Examples
175490
176−---
491+```
492+> ~(rux at 0xdead.beef)
493+"0xdead-beef"
494+```
177495
178496---
179497
@@ -181,37 +499,37 @@ XX document
181499
182500To lowercase
183501
184−Turn all occurences of uppercase letters in any `++tape` into lowercase
185−letters. Returns a `++tape`.
502+Turn all occurences of uppercase letters in any `tape` into lowercase
503+letters. Returns a `tape`.
186504
187505#### Accepts
188506
189−`vib` is a `++tape`.
507+`vib` is a `tape`.
190508
191509#### Produces
192510
193−A `++tape`.
511+A `tape`.
194512
195513#### Source
196514
197515```hoon
198− ++ cass :: lowercase
199− |= vib/tape
200− ^- tape
201− (turn vib |=(a/@ ?.(&((gte a 'A') (lte a 'Z')) a (add 32 a))))
516+++ cass
517+ |= vib=tape
518+ ^- tape
519+ (turn vib |=(a=@ ?.(&((gte a 'A') (lte a 'Z')) a (add 32 a))))
202520```
203521
204522#### Examples
205523
206524```
207− > (cass "JOHN DOE")
208− "john doe"
525+> (cass "JOHN DOE")
526+"john doe"
209527
210− > (cass "abc ABC 123 !@#")
211− "abc abc 123 !@#"
528+> (cass "abc ABC 123 !@#")
529+"abc abc 123 !@#"
212530
213− > (cass "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
214− "aabbccddeeffgghhiijjkkllmmnnooppqqrrssqqrrvvwwxxyyzz"
531+> (cass "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
532+"aabbccddeeffgghhiijjkkllmmnnooppqqrrssqqrrvvwwxxyyzz"
215533```
216534
217535---
@@ -220,33 +538,33 @@ A `++tape`.
220538
221539Tape to cord
222540
223−Produce a `++cord` from a `++tape`.
541+Produce a `cord` from a `tape`.
224542
225543#### Accepts
226544
227−`a` is a `++tape`.
545+`a` is a `tape`.
228546
229547#### Produces
230548
231−A `++cord`.
549+A `cord`.
232550
233551#### Source
234552
235553```hoon
236− ++ crip |=(a=tape `@t`(rap 3 a)) :: tape to cord
554+++ crip |=(a=tape `@t`(rap 3 a))
237555```
238556
239557#### Examples
240558
241559```
242− > (crip "john doe")
243− 'john doe'
560+> (crip "john doe")
561+'john doe'
244562
245− > (crip "abc 123 !@#")
246− 'abc 123 !@#'
563+> (crip "abc 123 !@#")
564+'abc 123 !@#'
247565
248− > `@ud`(crip "abc")
249− 6.513.249
566+> `@ud`(crip "abc")
567+6.513.249
250568```
251569
252570---
@@ -255,37 +573,37 @@ A `++cord`.
255573
256574To uppercase
257575
258−Turn all occurences of lowercase letters in any `++tape` into uppercase
259−letters. Returns a `++tape`.
576+Turn all occurences of lowercase letters in any `tape` into uppercase
577+letters. Returns a `tape`.
260578
261579#### Accepts
262580
263−`vib` is a `++tape`.
581+`vib` is a `tape`.
264582
265583#### Produces
266584
267−A `++tape`.
585+A `tape`.
268586
269587#### Source
270588
271589```hoon
272− ++ cuss :: uppercase
273− |= vib/tape
274− ^- tape
275− (turn vib |=(a/@ ?.(&((gte a 'a') (lte a 'z')) a (sub a 32))))
590+++ cuss
591+ |= vib=tape
592+ ^- tape
593+ (turn vib |=(a=@ ?.(&((gte a 'a') (lte a 'z')) a (sub a 32))))
276594```
277595
278596#### Examples
279597
280598```
281− > (cuss "john doe")
282− "JOHN DOE"
599+> (cuss "john doe")
600+"JOHN DOE"
283601
284− > (cuss "abc ABC 123 !@#")
285− "ABC ABC 123 !@#"
602+> (cuss "abc ABC 123 !@#")
603+"ABC ABC 123 !@#"
286604
287− > (cuss "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
288− "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSQQRRVVWWXXYYZZ"
605+> (cuss "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
606+"AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSQQRRVVWWXXYYZZ"
289607```
290608
291609---
@@ -294,40 +612,40 @@ A `++tape`.
294612
295613Escape special chars
296614
297−Escape special characters, used in `++show`.
615+Escape special characters.
298616
299617#### Accepts
300618
301−`vib` is a `++tape`.
619+`vib` is a `tape`.
302620
303621#### Produces
304622
305−A `++tape`.
623+A `tape`.
306624
307625#### Source
308626
309627```hoon
310− ++ mesc :: ctrl code escape
311− |= vib/tape
312− ^- tape
313− ?~ vib
314− ~
315− ?: =('\\' i.vib)
316− ['\\' '\\' $(vib t.vib)]
317− ?: ?|((gth i.vib 126) (lth i.vib 32) =(`@`39 i.vib))
318− ['\\' (welp ~(rux at i.vib) '/' $(vib t.vib))]
319− [i.vib $(vib t.vib)]
628+++ mesc
629+ |= vib=tape
630+ ^- tape
631+ ?~ vib
632+ ~
633+ ?: =('\\' i.vib)
634+ ['\\' '\\' $(vib t.vib)]
635+ ?: ?|((gth i.vib 126) (lth i.vib 32) =(`@`39 i.vib))
636+ ['\\' (welp ~(rux at i.vib) '/' $(vib t.vib))]
637+ [i.vib $(vib t.vib)]
320638```
321639
322640#### Examples
323641
324642```
325− > (mesc "ham lus")
326− "ham lus"
327− > (mesc "bas\\hur")
328− "bas\\\\hur"
329− > (mesc "as'saß")
330− "as\0x27/sa\0xc3/\0x9f/"
643+> (mesc "ham lus")
644+"ham lus"
645+> (mesc "bas\\hur")
646+"bas\\\\hur"
647+> (mesc "as'saß")
648+"as\0x27/sa\0xc3/\0x9f/"
331649```
332650
333651---
@@ -336,37 +654,37 @@ A `++tape`.
336654
337655Prepend `n` times
338656
339−Add `a` repetitions of character `b` to the head of `++tape` `c`.
657+Add `a` repetitions of character `b` to the head of `tape` `c`.
340658
341659#### Accepts
342660
343−`a` and `b` are atoms.
661+`[a b]` are atoms.
344662
345−`c` is a `++tape`.
663+`c` is a `tape`.
346664
347665#### Produces
348666
349−A `++tape`.
667+A `tape`.
350668
351669#### Source
352670
353671```hoon
354− ++ runt :: prepend repeatedly
355− |= [[a/@ b/@] c/tape]
356− ^- tape
357− ?: =(0 a)
358− c
359− [b $(a (dec a))]
360− ::
672+++ runt
673+ |= [[a=@ b=@] c=tape]
674+ ^- tape
675+ ?: =(0 a)
676+ c
677+ [b $(a (dec a))]
361678```
362679
363680#### Examples
364681
365682```
366− > (runt [2 '/'] "ham")
367− "//ham"
368− > (runt [10 'a'] "")
369− "aaaaaaaaaa"
683+> (runt [2 '/'] "ham")
684+"//ham"
685+
686+> (runt [10 'a'] "")
687+"aaaaaaaaaa"
370688```
371689
372690---
@@ -375,11 +693,12 @@ A `++tape`.
375693
376694Soft-cast by aura
377695
378−Soft-cast validity by aura.
696+Check characters in `b` are valid for aura `a`. Produce a `unit` of `a` if valid
697+and a null `unit` if not. Takes `a` and produces a gate that takes `b`.
379698
380699#### Accepts
381700
382−`a` is a `++span` (`@ta`).
701+`a` is a `@ta`, and specifies the aura like `%tas` or `%ta`.
383702
384703`b` is an atom.
385704
@@ -390,20 +709,21 @@ A `(unit @)`.
390709#### Source
391710
392711```hoon
393− ++ sand :: atom sanity
394− |= a/@ta
395− |= b/@ ^- (unit @)
396− ?.(((sane a) b) ~ [~ b])
397− ::
712+++ sand
713+ |= a=@ta
714+ (flit (sane a))
398715```
399716
400717#### Examples
401718
402719```
403− > `(unit @ta)`((sand %ta) 'sym-som')
404− [~ ~.sym-som]
405− > `(unit @ta)`((sand %ta) 'err!')
406− ~
720+> `(unit @ta)`((sand %ta) 'sym-som')
721+[~ ~.sym-som]
722+```
723+
724+```
725+> `(unit @ta)`((sand %ta) 'err!')
726+~
407727```
408728
409729---
@@ -412,76 +732,79 @@ A `(unit @)`.
412732
413733Check aura validity
414734
415−Check validity by aura. Produces a gate.
735+Check validity of `a` by aura `b`. Takes `b` and produces a gate that takes `a`.
416736
417737#### Accepts
418738
419−`a` is a `++span` (`@ta`).
739+`a` is a `@ta`, and specifies the aura like `%tas` or `%ta`.
420740
421741`b` is an atom.
422742
423743#### Produces
424744
425−A boolean.
745+A `?`.
426746
427747#### Source
428748
429749```hoon
430− ++ sane :: atom sanity
431− |= a/@ta
432− |= b/@ ^- ?
433− ?. =(%t (end 3 1 a))
434− ~|(%sane-stub !!)
435− =+ [inx=0 len=(met 3 b)]
436− ?: =(%tas a)
437− |- ^- ?
438− ?: =(inx len) &
439− =+ cur=(cut 3 [inx 1] b)
440− ?& ?| &((gte cur 'a') (lte cur 'z'))
441− &(=('-' cur) !=(0 inx) !=(len inx))
442− &(&((gte cur '0') (lte cur '9')) !=(0 inx))
443− ==
444− $(inx +(inx))
750+++ sane
751+ |= a=@ta
752+ |= b=@ ^- ?
753+ ?. =(%t (end 3 a))
754+ :: XX more and better sanity
755+ ::
756+ &
757+ =+ [inx=0 len=(met 3 b)]
758+ ?: =(%tas a)
759+ |- ^- ?
760+ ?: =(inx len) &
761+ =+ cur=(cut 3 [inx 1] b)
762+ ?& ?| &((gte cur 'a') (lte cur 'z'))
763+ &(=('-' cur) !=(0 inx) !=(len inx))
764+ &(&((gte cur '0') (lte cur '9')) !=(0 inx))
445765 ==
446− ?: =(%ta a)
447− |- ^- ?
448− ?: =(inx len) &
449− =+ cur=(cut 3 [inx 1] b)
450− ?& ?| &((gte cur 'a') (lte cur 'z'))
451− &((gte cur '0') (lte cur '9'))
452− |(=('-' cur) =('~' cur) =('_' cur) =('.' cur))
453− ==
454− $(inx +(inx))
766+ $(inx +(inx))
767+ ==
768+ ?: =(%ta a)
769+ |- ^- ?
770+ ?: =(inx len) &
771+ =+ cur=(cut 3 [inx 1] b)
772+ ?& ?| &((gte cur 'a') (lte cur 'z'))
773+ &((gte cur '0') (lte cur '9'))
774+ |(=('-' cur) =('~' cur) =('_' cur) =('.' cur))
455775 ==
456− |- ^- ?
457− ?: =(0 b) &
458− =+ cur=(end 3 1 b)
459− ?: &((lth cur 32) !=(10 cur)) |
460− =+ len=(teff cur)
461− ?& |(=(1 len) =+(i=1 |-(|(=(i len) &((gte (cut 3 [i 1] b) 128) $(i +(i)))))))
462− $(b (rsh 3 len b))
463− ==
464− ::
776+ $(inx +(inx))
777+ ==
778+ |- ^- ?
779+ ?: =(0 b) &
780+ =+ cur=(end 3 b)
781+ ?: &((lth cur 32) !=(10 cur)) |
782+ =+ len=(teff cur)
783+ ?& |(=(1 len) =+(i=1 |-(|(=(i len) &((gte (cut 3 [i 1] b) 128) $(i +(i)))))))
784+ $(b (rsh [3 len] b))
785+ ==
465786```
466787
467788#### Examples
468789
469790```
470− > ((sane %tas) %mol)
471− %.y
472− > ((sane %tas) 'lam')
473− %.y
474− > ((sane %tas) 'more ace')
475− %.n
791+> ((sane %tas) %mol)
792+%.y
793+
794+> ((sane %tas) 'lam')
795+%.y
796+
797+> ((sane %tas) 'more ace')
798+%.n
476799```
477800
478801---
479802
480−## `++teff`
803+## `++taft`
481804
482−UTF8 Length
805+UTF8 to UTF32
483806
484−Produces the number of utf8 bytes.
807+Convert `cord` `a` to a UTF32 `@c`.
485808
486809#### Accepts
487810
@@ -489,352 +812,354 @@ Produces the number of utf8 bytes.
489812
490813#### Produces
491814
492−An atom.
815+A `@c`.
493816
494817#### Source
495818
496819```hoon
497− |= a/@t ^- @
498− =+ b=(end 3 1 a)
499− ~| %bad-utf8
500− ?: =(0 b)
501− ?>(=(`@`0 a) 0)
502− ?> |((gte b 32) =(10 b))
503− ?:((lte b 127) 1 ?:((lte b 223) 2 ?:((lte b 239) 3 4)))
820+++ taft
821+ |= a=@t
822+ ^- @c
823+ %+ rap 5
824+ |- ^- (list @c)
825+ =+ b=(teff a)
826+ ?: =(0 b) ~
827+ =+ ^= c
828+ %+ can 0
829+ %+ turn
830+ ^- (list [p=@ q=@])
831+ ?+ b !!
832+ %1 [[0 7] ~]
833+ %2 [[8 6] [0 5] ~]
834+ %3 [[16 6] [8 6] [0 4] ~]
835+ %4 [[24 6] [16 6] [8 6] [0 3] ~]
836+ ==
837+ |=([p=@ q=@] [q (cut 0 [p q] a)])
838+ ?> =((tuft c) (end [3 b] a))
839+ [c $(a (rsh [3 b] a))]
504840```
505841
506842#### Examples
507843
508844```
509− > (teff 'a')
510− 1
511− > (teff 'ß')
512− 2
845+> (taft 'foobar')
846+~-foobar
847+
848+> `@ux`'foobar'
849+0x7261.626f.6f66
850+
851+> `@ux`~-foobar
852+0x72.0000.0061.0000.0062.0000.006f.0000.006f.0000.0066
513853```
514854
515855---
516856
517−## `++trim`
857+## `++teff`
518858
519−Tape split
859+UTF8 Length
520860
521−Split first `a` characters off `++tape` `b`.
861+Produces the number of utf8 bytes of `a`, a single `@t` character. If `a`
862+contains more than one character, it will produce the byte-length of the first
863+one.
522864
523865#### Accepts
524866
525−`a` is an atom.
526−
527−`b` is a `++tape`.
867+`a` is a `@t`.
528868
529869#### Produces
530870
531−A cell of `++tape`s, `p` and `q`.
871+An atom.
532872
533873#### Source
534874
535875```hoon
536− ++ trim :: 31-bit nonzero
537− |= key/@
538− =+ syd=0xcafe.babe
539− |- ^- @
540− =+ haz=(spec syd key)
541− =+ ham=(mix (rsh 0 31 haz) (end 0 31 haz))
542− ?.(=(0 ham) ham $(syd +(syd)))
543− --
544− ::
876+++ teff
877+ |= a=@t ^- @
878+ =+ b=(end 3 a)
879+ ?: =(0 b)
880+ ?>(=(`@`0 a) 0)
881+ ?> |((gte b 32) =(10 b))
882+ ?:((lte b 127) 1 ?:((lte b 223) 2 ?:((lte b 239) 3 4)))
545883```
546884
547885#### Examples
548886
549887```
550− > (trim 5 "lasok termun")
551− [p="lasok" q=" termun"]
552− > (trim 5 "zam")
553− [p="zam" q=""]
888+> (teff 'a')
889+1
890+
891+> (teff 'ß')
892+2
893+
894+> (teff 'aß')
895+1
554896```
555897
556898---
557899
558−## `++trip`
900+## `++trim`
559901
560−Cord to tape
902+Tape split
561903
562−Produce a `++tape` from `++cord`.
904+Split first `a` characters off `tape` `b`.
563905
564906#### Accepts
565907
566908`a` is an atom.
567909
910+`b` is a `tape`.
911+
568912#### Produces
569913
570−A `++tape`.
914+A cell of `tape`s, `p` and `q`.
571915
572916#### Source
573917
574918```hoon
575− ++ trip :: cord to tape
576− ~/ %trip
577− |= a/@ ^- tape
578− ?: =(0 (met 3 a))
579− ~
580− [^-(@ta (end 3 1 a)) $(a (rsh 3 1 a))]
581− ::
919+++ trim
920+ |= [a=@ b=tape]
921+ ^- [p=tape q=tape]
922+ ?~ b
923+ [~ ~]
924+ ?: =(0 a)
925+ [~ b]
926+ =+ c=$(a (dec a), b t.b)
927+ [[i.b p.c] q.c]
582928```
583929
584930#### Examples
585931
586932```
587− > (trip 'john doe')
588− "john doe"
589− > (trip 'abc 123 !@#')
590− "abc 123 !@#"
591− > (trip 'abc')
592− "abc"
933+> (trim 5 "lasok termun")
934+[p="lasok" q=" termun"]
935+
936+> (trim 5 "zam")
937+[p="zam" q=""]
593938```
594939
595940---
596941
597−## `++tuba`
942+## `++trip`
598943
599−UTF8 to UTF32 tape
944+Cord to tape
600945
601−Convert `++tape` to a `++list` of codepoints (`@c`).
946+Produce a `tape` from `cord` `a`.
602947
603948#### Accepts
604949
605−`a` is a `++tape`.
950+`a` is an atom.
606951
607952#### Produces
608953
609−A `++list` of codepoints `@c`.
954+A `tape`.
610955
611956#### Source
612957
613958```hoon
614− ++ tuba :: utf8 to utf32 tape
615− |= a/tape
616− ^- (list @c)
617− (rip 5 (turf (rap 3 a))) :: XX horrible
618− ::
959+++ trip
960+ ~/ %trip
961+ |= a=@ ^- tape
962+ ?: =(0 (met 3 a))
963+ ~
964+ [^-(@ta (end 3 a)) $(a (rsh 3 a))]
619965```
620966
621967#### Examples
622968
623969```
624− > (tuba "я тут")
625− ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.]
626− > (tuba "chars")
627− ~[~-c ~-h ~-a ~-r ~-s]
970+> (trip 'john doe')
971+"john doe"
972+
973+> (trip 'abc 123 !@#')
974+"abc 123 !@#"
975+
976+> (trip 'abc')
977+"abc"
628978```
629979
630980---
631981
632−## `++tufa`
982+## `++tuba`
633983
634−UTF32 to UTF8 tape
984+UTF8 tape to UTF32 tape
635985
636−Wrap a `++list` of utf32 codepoints into a utf8 `++tape`.
986+Convert `tape` to a `list` of codepoints (`@c`).
637987
638988#### Accepts
639989
640−`a` is a `++list` of `@c`.
990+`a` is a `tape`.
641991
642992#### Produces
643993
644−A `++tape`.
994+A `(list @c)`.
645995
646996#### Source
647997
648998```hoon
649− ++ tufa :: utf32 to utf8 tape
650− |= a=(list @c)
651− ^- tape
652− ?~ a ""
653− (weld (rip 3 (tuft i.a)) $(a t.a))
654− ::
999+++ tuba
1000+ |= a=tape
1001+ ^- (list @c)
1002+ (rip 5 (taft (rap 3 a)))
6551003```
6561004
6571005#### Examples
6581006
659−```hoon
660− > (tufa ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.])
661− "я тут"
662− > (tufa ((list @c) ~[%a %b 0xb1 %c]))
663− "ab±c"
1007+```
1008+> (tuba "я тут")
1009+~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.]
1010+
1011+> (tuba "chars")
1012+~[~-c ~-h ~-a ~-r ~-s]
6641013```
6651014
6661015---
6671016
668−## `++tuft`
1017+## `++tufa`
6691018
670−UTF32 to UTF8 text
1019+UTF32 to UTF8 tape
6711020
672−Convert utf32 glyph to
673−LSB utf8 `++cord`.
1021+Wrap a `list` of utf32 codepoints into a utf8 `tape`.
6741022
6751023#### Accepts
6761024
677−`a` is a codepoint (`@c`).
1025+`a` is a `(list @c)`.
6781026
6791027#### Produces
6801028
681−A `++cord`.
1029+A `tape`.
6821030
6831031#### Source
6841032
6851033```hoon
686− ++ tuft :: utf32 to utf8 text
687− |= a/@c
688− ^- @t
689− %+ rap 3
690− |- ^- (list @)
691− ?: =(`@`0 a)
692− ~
693− =+ b=(end 5 1 a)
694− =+ c=$(a (rsh 5 1 a))
695− ?: (lte b 0x7f)
696− [b c]
697− ?: (lte b 0x7ff)
698− :* (mix 0b1100.0000 (cut 0 [6 5] b))
699− (mix 0b1000.0000 (end 0 6 b))
700− c
701− ==
702− ?: (lte b 0xffff)
703− :* (mix 0b1110.0000 (cut 0 [12 4] b))
704− (mix 0b1000.0000 (cut 0 [6 6] b))
705− (mix 0b1000.0000 (end 0 6 b))
706− c
707− ==
708− :* (mix 0b1111.0000 (cut 0 [18 3] b))
709− (mix 0b1000.0000 (cut 0 [12 6] b))
710− (mix 0b1000.0000 (cut 0 [6 6] b))
711− (mix 0b1000.0000 (end 0 6 b))
712− c
713− ==
1034+++ tufa
1035+ |= a=(list @c)
1036+ ^- tape
1037+ ?~ a ""
1038+ (weld (rip 3 (tuft i.a)) $(a t.a))
7141039```
7151040
7161041#### Examples
7171042
7181043```
719− > (tuft `@c`%a)
720− 'a'
721− > (tuft `@c`0xb6)
722− '¶'
1044+> (tufa ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.])
1045+"я тут"
1046+
1047+> (tufa ((list @c) ~[%a %b 0xb1 %c]))
1048+"ab±c"
7231049```
7241050
7251051---
7261052
727−## `++turf`
1053+## `++tuft`
7281054
729−UTF8 to UTF32 cord
1055+UTF32 to UTF8
7301056
731−Convert utf8 (`++cord`) to utf32 codepoints.
1057+Convert `@c` to `cord`.
7321058
7331059#### Accepts
7341060
735−`a` is a `@t`.
1061+`a` is a `@c`.
7361062
7371063#### Produces
7381064
739−A `@c`, UTF-32 codepoint.
1065+A `cord`.
7401066
7411067#### Source
7421068
7431069```hoon
744− ++ turf :: utf8 to utf32
745− |= a/@t
746− ^- @c
747− %+ rap 5
748− |- ^- (list @c)
749− =+ b=(teff a)
750− ?: =(0 b) ~
751− =+ ^= c
752− %+ can 0
753− %+ turn
754− ^- (list {p/@ q/@})
755− ?+ b !!
756− $1 [[0 7] ~]
757− $2 [[8 6] [0 5] ~]
758− $3 [[16 6] [8 6] [0 4] ~]
759− $4 [[24 6] [16 6] [8 6] [0 3] ~]
760− ==
761− |=({p/@ q/@} [q (cut 0 [p q] a)])
762− ?. =((tuft c) (end 3 b a)) ~|(%bad-utf8 !!)
763− [c $(a (rsh 3 b a))]
764− ::
1070+++ tuft
1071+ |= a=@c
1072+ ^- @t
1073+ %+ rap 3
1074+ |- ^- (list @)
1075+ ?: =(`@`0 a)
1076+ ~
1077+ =+ b=(end 5 a)
1078+ =+ c=$(a (rsh 5 a))
1079+ ?: (lte b 0x7f)
1080+ [b c]
1081+ ?: (lte b 0x7ff)
1082+ :* (mix 0b1100.0000 (cut 0 [6 5] b))
1083+ (mix 0b1000.0000 (end [0 6] b))
1084+ c
1085+ ==
1086+ ?: (lte b 0xffff)
1087+ :* (mix 0b1110.0000 (cut 0 [12 4] b))
1088+ (mix 0b1000.0000 (cut 0 [6 6] b))
1089+ (mix 0b1000.0000 (end [0 6] b))
1090+ c
1091+ ==
1092+ :* (mix 0b1111.0000 (cut 0 [18 3] b))
1093+ (mix 0b1000.0000 (cut 0 [12 6] b))
1094+ (mix 0b1000.0000 (cut 0 [6 6] b))
1095+ (mix 0b1000.0000 (end [0 6] b))
1096+ c
1097+ ==
7651098```
7661099
7671100#### Examples
7681101
7691102```
770− > (turf 'my ßam')
771− ~-my.~df.am
772− > 'я тут'
773− 'я тут'
774− > (turf 'я тут')
775− ~-~44f..~442.~443.~442.
776− > `@ux`'я тут'
777− 0x82.d183.d182.d120.8fd1
778− > `@ux`(turf 'я тут')
779− 0x442.0000.0443.0000.0442.0000.0020.0000.044f
1103+> (tuft ~-foobar)
1104+'foobar'
1105+
1106+> `@ux`~-foobar
1107+0x72.0000.0061.0000.0062.0000.006f.0000.006f.0000.0066
1108+
1109+> `@ux`'foobar'
1110+0x7261.626f.6f66
7801111```
7811112
7821113---
7831114
7841115## `++wack`
7851116
786−Coin format encode
1117+Knot escape
7871118
788−Escape `++span` `~` as `~~` and `_` as `~-`. Used for printing.
1119+Escape `knot` `~` as `~~` and `_` as `~-`. Used for printing.
7891120
7901121#### Accepts
7911122
792−`a` is a `++span` (`@ta`).
1123+`a` is a `knot`.
7931124
7941125#### Produces
7951126
796−A `++span` (`@ta`).
1127+A `knot`.
7971128
7981129#### Source
7991130
8001131```hoon
801− ++ wack :: coin format
802− |= a/@ta
803− ^- @ta
804− =+ b=(rip 3 a)
805− %+ rap 3
806− |- ^- tape
807− ?~ b
808− ~
809− ?: =('~' i.b) ['~' '~' $(b t.b)]
810− ?: =('_' i.b) ['~' '-' $(b t.b)]
811− [i.b $(b t.b)]
812− ::
1132+++ wack
1133+ |= a=@ta
1134+ ^- @ta
1135+ =+ b=(rip 3 a)
1136+ %+ rap 3
1137+ |- ^- tape
1138+ ?~ b
1139+ ~
1140+ ?: =('~' i.b) ['~' '~' $(b t.b)]
1141+ ?: =('_' i.b) ['~' '-' $(b t.b)]
1142+ [i.b $(b t.b)]
8131143```
8141144
8151145#### Examples
8161146
8171147```
818− > (wack '~20_sam~')
819− ~.~~20~-sam~~
820−
821− > `@t`(wack '~20_sam~')
822− '~~20~-sam~~'
1148+> (wack '~20_sam~')
1149+~.~~20~-sam~~
8231150
824− > ~(rend co %many ~[`ud/5 `ta/'~20_sam'])
825− "._5_~~.~~20~-sam__"
826−
827− > ._5_~~.~~20~-sam__
828− [5 ~.~20_sam]
1151+> `@t`(wack '~20_sam~')
1152+'~~20~-sam~~'
8291153```
8301154
8311155---
8321156
8331157## `++wick`
8341158
835−Coin format decode
1159+Knot unescape
8361160
837−Unescape `++span` `~~` as `~` and `~-` as `_`.
1161+Unescape `knot` `~~` as `~` and `~-` as `_`. Produces a `unit`, which is null if
1162+the `knot` contains unescaped `~` characters.
8381163
8391164#### Accepts
8401165
@@ -842,38 +1167,37 @@ Unescape `++span` `~~` as `~` and `~-` as `_`.
8421167
8431168#### Produces
8441169
845−A `++span` `@ta`.
1170+A `(unit @ta)`.
8461171
8471172#### Source
8481173
8491174```hoon
850− ++ wick :: knot format
851− |= a/@
852− ^- (unit @ta)
853− =+ b=(rip 3 a)
854− =- ?^(b ~ (some (rap 3 (flop c))))
855− =| c/tape
856− |- ^- {b/tape c/tape}
857− ?~ b [~ c]
858− ?. =('~' i.b)
859− $(b t.b, c [i.b c])
860− ?~ t.b [b ~]
861− ?- i.t.b
862− $'~' $(b t.t.b, c ['~' c])
863− $'-' $(b t.t.b, c ['_' c])
864− @ [b ~]
865− ==
866− ::
1175+++ wick
1176+ |= a=@
1177+ ^- (unit @ta)
1178+ =+ b=(rip 3 a)
1179+ =- ?^(b ~ (some (rap 3 (flop c))))
1180+ =| c=tape
1181+ |- ^- [b=tape c=tape]
1182+ ?~ b [~ c]
1183+ ?. =('~' i.b)
1184+ $(b t.b, c [i.b c])
1185+ ?~ t.b [b ~]
1186+ ?- i.t.b
1187+ %'~' $(b t.t.b, c ['~' c])
1188+ %'-' $(b t.t.b, c ['_' c])
1189+ @ [b ~]
1190+ ==
8671191```
8681192
8691193#### Examples
8701194
8711195```
872− > `@t`(wick '~-ams~~lop')
873− '_ams~lop'
1196+> (wick ~.~~20~-sam~~)
1197+[~ ~.~20_sam~]
8741198
875− > `@t`(wick (wack '~20_sam~'))
876− '~20_sam~'
1199+> (wick ~.~20~-sam~~)
1200+~
8771201```
8781202
8791203---
@@ -882,7 +1206,7 @@ A `++span` `@ta`.
8821206
8831207Unescape cord
8841208
885−Unescape `++cord` codepoints.
1209+Unescape `knot`-encoded `cord`.
8861210
8871211#### Accepts
8881212
@@ -890,51 +1214,50 @@ Unescape `++cord` codepoints.
8901214
8911215#### Produces
8921216
893−A `++cord`.
1217+A `cord`.
8941218
8951219#### Source
8961220
8971221```hoon
898− ++ woad :: cord format
899− |= a/@ta
900− ^- @t
901− %+ rap 3
902− |- ^- (list @)
903− ?: =(`@`0 a)
904− ~
905− =+ b=(end 3 1 a)
906− =+ c=(rsh 3 1 a)
907− ?: =('.' b)
908− [' ' $(a c)]
909− ?. =('~' b)
910− [b $(a c)]
911− => .(b (end 3 1 c), c (rsh 3 1 c))
912− ?+ b =- (weld (rip 3 (tuft p.d)) $(a q.d))
913− ^= d
914− =+ d=0
915− |- ^- {p/@ q/@}
916− ?: =('.' b)
917− [d c]
918− ?< =(0 c)
919− %= $
920− b (end 3 1 c)
921− c (rsh 3 1 c)
922− d %+ add (mul 16 d)
923− %+ sub b
924− ?: &((gte b '0') (lte b '9')) 48
925− ?>(&((gte b 'a') (lte b 'z')) 87)
926− ==
927− $'.' ['.' $(a c)]
928− $'~' ['~' $(a c)]
929− ==
930− ::
1222+++ woad
1223+ |= a=@ta
1224+ ^- @t
1225+ %+ rap 3
1226+ |- ^- (list @)
1227+ ?: =(`@`0 a)
1228+ ~
1229+ =+ b=(end 3 a)
1230+ =+ c=(rsh 3 a)
1231+ ?: =('.' b)
1232+ [' ' $(a c)]
1233+ ?. =('~' b)
1234+ [b $(a c)]
1235+ => .(b (end 3 c), c (rsh 3 c))
1236+ ?+ b =- (weld (rip 3 (tuft p.d)) $(a q.d))
1237+ ^= d
1238+ =+ d=0
1239+ |- ^- [p=@ q=@]
1240+ ?: =('.' b)
1241+ [d c]
1242+ ?< =(0 c)
1243+ %= $
1244+ b (end 3 c)
1245+ c (rsh 3 c)
1246+ d %+ add (mul 16 d)
1247+ %+ sub b
1248+ ?: &((gte b '0') (lte b '9')) 48
1249+ ?>(&((gte b 'a') (lte b 'z')) 87)
1250+ ==
1251+ %'.' ['.' $(a c)]
1252+ %'~' ['~' $(a c)]
1253+ ==
9311254```
9321255
9331256#### Examples
9341257
9351258```
936− > (woad ~.~b6.20.as)
937− '¶20 as'
1259+> (woad ~.foo.bar~21.)
1260+'foo bar!'
9381261```
9391262
9401263---
@@ -943,51 +1266,55 @@ A `++cord`.
9431266
9441267Escape cord
9451268
946−Escape `++cord` codepoints.
1269+Escape `cord` `a` so it can be encoded in a `knot`.
9471270
9481271#### Accepts
9491272
950−`a` is a `++span` (`@ta`).
1273+`a` is a `cord`.
9511274
9521275#### Produces
9531276
954−A `++span` (`@ta`).
1277+A `knot`.
9551278
9561279#### Source
9571280
9581281```hoon
959− ++ wood :: cord format
960− |= a/@t
961− ^- @ta
962− %+ rap 3
963− |- ^- (list @)
964− ?: =(`@`0 a)
965− ~
966− =+ b=(teff a)
967− =+ c=(turf (end 3 b a))
968− =+ d=$(a (rsh 3 b a))
969− ?: ?| &((gte c 'a') (lte c 'z'))
970− &((gte c '0') (lte c '9'))
971− =(`@`'-' c)
972− ==
973− [c d]
974− ?+ c
975− :- '~'
976− =+ e=(met 2 c)
977− |- ^- tape
978− ?: =(0 e)
979− ['.' d]
980− =. e (dec e)
981− =+ f=(rsh 2 e c)
982− [(add ?:((lte f 9) 48 87) f) $(c (end 2 e c))]
983− ::
1282+++ wood
1283+ |= a=@t
1284+ ^- @ta
1285+ %+ rap 3
1286+ |- ^- (list @)
1287+ ?: =(`@`0 a)
1288+ ~
1289+ =+ b=(teff a)
1290+ =+ c=(taft (end [3 b] a))
1291+ =+ d=$(a (rsh [3 b] a))
1292+ ?: ?| &((gte c 'a') (lte c 'z'))
1293+ &((gte c '0') (lte c '9'))
1294+ =(`@`'-' c)
1295+ ==
1296+ [c d]
1297+ ?+ c
1298+ :- '~'
1299+ =+ e=(met 2 c)
1300+ |- ^- tape
1301+ ?: =(0 e)
1302+ ['.' d]
1303+ =. e (dec e)
1304+ =+ f=(rsh [2 e] c)
1305+ [(add ?:((lte f 9) 48 87) f) $(c (end [2 e] c))]
1306+ ::
1307+ %' ' ['.' d]
1308+ %'.' ['~' '.' d]
1309+ %'~' ['~' '~' d]
1310+ ==
9841311```
9851312
9861313#### Examples
9871314
9881315```
989− > (wood 'my ßam')
990− ~.my.~df.am
1316+> (wood 'foo bar!')
1317+~.foo.bar~21.
9911318```
9921319
9931320---
content/docs/hoon/reference/stdlib/table-of-contents.md+44−32
@@ -40,7 +40,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
4040<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#aptby' title="Check correctness (map)"><code>++apt:by</code></a>
4141<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#aptin' title="Check correctness (set)"><code>++apt:in</code></a>
4242<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#aptto' title="Check correctness of queue"><code>++apt:to</code></a>
43−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="(Undocumented)"><code>++at</code></a>
43+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="Basic printing"><code>++at</code></a>
4444<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#aura' title="'Type' of atom"><code>++aura</code></a>
4545<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#axis' title="Tree address"><code>+$axis</code></a>
4646
@@ -91,6 +91,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
9191<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#cat' title="Concatenate"><code>++cat</code></a>
9292<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cen' title="Parse % (cen)"><code>++cen</code></a>
9393<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#cetyo' title="Days in a century"><code>++cet:yo</code></a>
94+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#chafa' title="Decode base58check character"><code>++cha:fa</code></a>
9495<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#char' title="Character"><code>+$char</code></a>
9596<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#chum' title="Jet hint information"><code>++chum</code></a>
9697<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
@@ -128,6 +129,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
128129<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#delju' title="Delete (jug)"><code>++del:ju</code></a>
129130<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
130131<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#demag' title="Parse decmal with dots"><code>++dem:ag</code></a>
132+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#denfa' title="Decode base58check"><code>++den:fa</code></a>
131133<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#denfl' title="Denormalizes (floating point)"><code>++den:fl</code></a>
132134<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#depto' title="Maximum depth (queue)"><code>++dep:to</code></a>
133135<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#difby' title="Difference between maps"><code>++dif:by</code></a>
@@ -178,6 +180,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
178180<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emnfl' title="Minimum exponent"><code>++emn:fl</code></a>
179181<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emufl' title="Exact multiply"><code>++emu:fl</code></a>
180182<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emxfl' title="Maximum exponent"><code>++emx:fl</code></a>
183+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#encfa' title="Encode base58check"><code>++enc:fa</code></a>
181184<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#end' title="Tail"><code>++end</code></a>
182185<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equff' title="Equals (IEEE float)"><code>++equ:ff</code></a>
183186<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equfl' title="Equals (signed and unsigned integer cell)"><code>++equ:fl</code></a>
@@ -195,6 +198,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
195198
196199### f
197200
201+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#fa' title="base58check"><code>++fa</code></a>
198202<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#fail' title="Never parse"><code>++fail</code></a>
199203<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#fall' title="Give unit a default value"><code>++fall</code></a>
200204<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#fand' title="All indices in list"><code>++fand</code></a>
@@ -455,6 +459,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
455459### p
456460
457461<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#paff' title="Initialize fl from ff core"><code>++pa:ff</code></a>
462+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#padfa' title="base58check padding bytes"><code>++pad:fa</code></a>
458463<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#pair' title="Mold of pair of types"><code>++pair</code></a>
459464<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
460465<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
@@ -499,7 +504,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
499504
500505### r
501506
502−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="(Undocumented)"><code>++r:at</code></a>
507+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="Print term, number or hex"><code>++r:at</code></a>
503508<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radog' title="Random in range"><code>++rad:og</code></a>
504509<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radsog' title="Random continuation"><code>++rads:og</code></a>
505510<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#rakuob' title="Key list"><code>++raku:ob</code></a>
@@ -521,11 +526,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
521526<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#repby' title="Reduce to product (map)"><code>++rep:by</code></a>
522527<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#repin' title="Accumulate elements (set)"><code>++rep:in</code></a>
523528<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rev' title="Reverse"><code>++rev</code></a>
524−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="(Undocumented)"><code>++rf:at</code></a>
529+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="Print loobean"><code>++rf:at</code></a>
525530<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#ribby' title="Transform + product (map)"><code>++rib:by</code></a>
526531<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#rigre' title="Wrap tape in / (tank)"><code>++rig:re</code></a>
527532<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rip' title="Disassemble"><code>++rip</code></a>
528−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="(Undocumented)"><code>++rn:at</code></a>
533+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="Print null"><code>++rn:at</code></a>
529534<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rolfe' title="Roll left"><code>++rol:fe</code></a>
530535<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
531536<code>++rood</code>
@@ -534,23 +539,23 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
534539<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
535540<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
536541<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rsh' title="Rightshift"><code>++rsh</code></a>
537−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="(Undocumented)"><code>++rt:at</code></a>
538−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="(Undocumented)"><code>++rta:at</code></a>
539−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="(Undocumented)"><code>++rtam:at</code></a>
542+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="Print cord, including escape characters"><code>++rt:at</code></a>
543+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="Print cord, including escape characters"><code>++rta:at</code></a>
544+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="Print cord with @tas syntax"><code>++rtam:at</code></a>
540545<a class="tooltip" href='/docs/hoon/reference/stdlib/2p/#rub' title="Lengthdecode"><code>++rub</code></a>
541−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="(Undocumented)"><code>++rub:at</code></a>
542−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="(Undocumented)"><code>++rud:at</code></a>
546+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="Print binary"><code>++rub:at</code></a>
547+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="Print atom as integer"><code>++rud:at</code></a>
543548<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#rule' title="Parsing rule (match this with _)"><code>+$rule</code></a>
544−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="(Undocumented)"><code>++rum:at</code></a>
549+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="Print base-n"><code>++rum:at</code></a>
545550<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#runby' title="Transform values (map)"><code>++run:by</code></a>
546551<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#runin' title="Apply gate to set"><code>++run:in</code></a>
547552<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#runt' title="Prepend n times"><code>++runt</code></a>
548−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="(Undocumented)"><code>++rup:at</code></a>
553+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="Print @p (outdated)"><code>++rup:at</code></a>
549554<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
550555<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
551556<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#rutby' title="Transform nodes (map)"><code>++rut:by</code></a>
552−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="(Undocumented)"><code>++ruv:at</code></a>
553−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="(Undocumented)"><code>++rux:at</code></a>
557+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="Print base-64"><code>++ruv:at</code></a>
558+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="Print hexadecimal"><code>++rux:at</code></a>
554559
555560### s
556561
@@ -692,6 +697,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
692697
693698### t
694699
700+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#taft' title="UTF8 to UTF32 cord"><code>++taft</code></a>
695701<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#tail' title="Get tail of cell"><code>++tail</code></a>
696702<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#tapto' title="Queue to list"><code>++tap:to</code></a>
697703<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
@@ -724,6 +730,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
724730<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirs' title="Round singleprecision float to nearest signed integer"><code>++toi:rs</code></a>
725731<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirq' title="Round quadprecision float to nearest signed integer"><code>++toi:rq</code></a>
726732<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#tojfl' title="Round unsigned and signed integer to float"><code>++toj:fl</code></a>
733+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tokfa' title="Compute base58check checksum"><code>++tok:fa</code></a>
727734<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#tone' title="Nock result (error report)"><code>+$tone</code></a>
728735<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#toon' title="Nock result (stack trace)"><code>+$toon</code></a>
729736<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#topto' title="Produce head of queue"><code>++top:to</code></a>
@@ -739,7 +746,6 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
739746<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
740747<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tuna' title="XML template tree"><code>++tuna</code></a>
741748<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
742−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#turf' title="UTF8 to UTF32 cord"><code>++turf</code></a>
743749<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#turn' title="Gate to list"><code>++turn</code></a>
744750<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tusk' title="List of expressions"><code>++tusk</code></a>
745751<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#twidso' title="Parse coins without ~ prefix"><code>++twid:so</code></a>
@@ -776,13 +782,13 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
776782### w
777783
778784<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
779−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Coin format encode"><code>++wack</code></a>
785+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Knot escape"><code>++wack</code></a>
780786<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wain' title="List of cords"><code>+$wain</code></a>
781787<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wall' title="List of list of characters"><code>+$wall</code></a>
782788<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#weld' title="Concatenate two lists"><code>++weld</code></a>
783789<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#weldnl' title="Concatenate nullterminated nouns"><code>++weld:nl</code></a>
784790<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#welp' title="Perfect concatenate (lists)"><code>++welp</code></a>
785−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Coin format decode"><code>++wick</code></a>
791+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Knot unescape"><code>++wick</code></a>
786792<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#wigre' title="++win render tape"><code>++wig:re</code></a>
787793<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#winre' title="Render at indent"><code>++win:re</code></a>
788794<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#wing' title="Address in subject"><code>++wing</code></a>
@@ -1417,22 +1423,28 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
14171423<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#inspo' title="Parse prefix"><code>++ins:po</code></a>
14181424<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#todpo' title="Fetch suffix"><code>++tod:po</code></a>
14191425<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tospo' title="Fetch prefix"><code>++tos:po</code></a>
1426+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#fa' title="base58check"><code>++fa</code></a>
1427+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#chafa' title="Decode base58check character"><code>++cha:fa</code></a>
1428+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tokfa' title="Compute base58check checksum"><code>++tok:fa</code></a>
1429+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#padfa' title="base58check padding bytes"><code>++pad:fa</code></a>
1430+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#encfa' title="Encode base58check"><code>++enc:fa</code></a>
1431+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#denfa' title="Decode base58check"><code>++den:fa</code></a>
14201432
14211433### 4b: text processing
14221434
1423−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="(Undocumented)"><code>++at</code></a>
1424−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="(Undocumented)"><code>++r:at</code></a>
1425−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="(Undocumented)"><code>++rf:at</code></a>
1426−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="(Undocumented)"><code>++rn:at</code></a>
1427−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="(Undocumented)"><code>++rt:at</code></a>
1428−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="(Undocumented)"><code>++rta:at</code></a>
1429−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="(Undocumented)"><code>++rtam:at</code></a>
1430−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="(Undocumented)"><code>++rub:at</code></a>
1431−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="(Undocumented)"><code>++rud:at</code></a>
1432−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="(Undocumented)"><code>++rum:at</code></a>
1433−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="(Undocumented)"><code>++rup:at</code></a>
1434−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="(Undocumented)"><code>++ruv:at</code></a>
1435−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="(Undocumented)"><code>++rux:at</code></a>
1435+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="Basic printing"><code>++at</code></a>
1436+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="Print term, number or hex"><code>++r:at</code></a>
1437+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="Print loobean"><code>++rf:at</code></a>
1438+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="Print null"><code>++rn:at</code></a>
1439+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="Print cord, including escape characters"><code>++rt:at</code></a>
1440+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="Print cord, including escape characters"><code>++rta:at</code></a>
1441+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="Print cord with @tas syntax"><code>++rtam:at</code></a>
1442+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="Print binary"><code>++rub:at</code></a>
1443+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="Print atom as integer"><code>++rud:at</code></a>
1444+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="Print base-n"><code>++rum:at</code></a>
1445+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="Print @p (outdated)"><code>++rup:at</code></a>
1446+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="Print base-64"><code>++ruv:at</code></a>
1447+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="Print hexadecimal"><code>++rux:at</code></a>
14361448
14371449<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#cass' title="To lowercase"><code>++cass</code></a>
14381450<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#crip' title="Tape to cord"><code>++crip</code></a>
@@ -1447,9 +1459,9 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
14471459<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuba' title="UTF8 to UTF32 tape"><code>++tuba</code></a>
14481460<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
14491461<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
1450−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#turf' title="UTF8 to UTF32 cord"><code>++turf</code></a>
1451−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Coin format encode"><code>++wack</code></a>
1452−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Coin format decode"><code>++wick</code></a>
1462+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#taft' title="UTF8 to UTF32 cord"><code>++taft</code></a>
1463+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Knot escape"><code>++wack</code></a>
1464+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Knot unescape"><code>++wick</code></a>
14531465<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#woad' title="Unescape cord"><code>++woad</code></a>
14541466<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wood' title="Escape cord"><code>++wood</code></a>
14551467
lib/glossary.js+64−22
@@ -1571,7 +1571,7 @@ export const glossary = [
15711571 desc: "Used in the Hoon standard library.",
15721572 },
15731573 {
1574− name: "(Undocumented)",
1574+ name: "Basic printing",
15751575 symbol: "at",
15761576 usage: "stdlib",
15771577 slug: "https://urbit.org/docs/reference/library/4b/#at",
@@ -1885,6 +1885,13 @@ export const glossary = [
18851885 slug: "https://urbit.org/docs/reference/library/3c/#cetyo",
18861886 desc: "Used in the Hoon standard library.",
18871887 },
1888+ {
1889+ name: "Decode base58check character",
1890+ symbol: "cha:fa",
1891+ usage: "stdlib",
1892+ slug: "https://urbit.org/docs/reference/library/4a/#chafa",
1893+ desc: "Used in the Hoon standard library.",
1894+ },
18881895 {
18891896 name: "Character",
18901897 symbol: "char",
@@ -2466,6 +2473,13 @@ export const glossary = [
24662473 slug: "https://urbit.org/docs/reference/library/3b/#emxfl",
24672474 desc: "Used in the Hoon standard library.",
24682475 },
2476+ {
2477+ name: "Encode base58check",
2478+ symbol: "enc:fa",
2479+ usage: "stdlib",
2480+ slug: "https://urbit.org/docs/reference/library/4a/#encfa",
2481+ desc: "Used in the Hoon standard library.",
2482+ },
24692483 {
24702484 name: "Tail",
24712485 symbol: "end",
@@ -2564,6 +2578,13 @@ export const glossary = [
25642578 slug: "https://urbit.org/docs/reference/library/3b/#exprq",
25652579 desc: "Used in the Hoon standard library.",
25662580 },
2581+ {
2582+ name: "base58check",
2583+ symbol: "fa",
2584+ usage: "stdlib",
2585+ slug: "https://urbit.org/docs/reference/library/4a/#fa",
2586+ desc: "Used in the Hoon standard library.",
2587+ },
25672588 {
25682589 name: "Never parse",
25692590 symbol: "fail",
@@ -4448,7 +4469,7 @@ export const glossary = [
44484469 desc: "Used in the Hoon standard library.",
44494470 },
44504471 {
4451− name: "(Undocumented)",
4472+ name: "Print term, number or hex",
44524473 symbol: "r:at",
44534474 usage: "stdlib",
44544475 slug: "https://urbit.org/docs/reference/library/4b/#rat",
@@ -4595,7 +4616,7 @@ export const glossary = [
45954616 desc: "Used in the Hoon standard library.",
45964617 },
45974618 {
4598− name: "(Undocumented)",
4619+ name: "Print loobean",
45994620 symbol: "rf:at",
46004621 usage: "stdlib",
46014622 slug: "https://urbit.org/docs/reference/library/4b/#rfat",
@@ -4623,7 +4644,7 @@ export const glossary = [
46234644 desc: "Used in the Hoon standard library.",
46244645 },
46254646 {
4626− name: "(Undocumented)",
4647+ name: "Print null",
46274648 symbol: "rn:at",
46284649 usage: "stdlib",
46294650 slug: "https://urbit.org/docs/reference/library/4b/#rnat",
@@ -4679,21 +4700,21 @@ export const glossary = [
46794700 desc: "Used in the Hoon standard library.",
46804701 },
46814702 {
4682− name: "(Undocumented)",
4703+ name: "Print cord, including escape characters",
46834704 symbol: "rt:at",
46844705 usage: "stdlib",
46854706 slug: "https://urbit.org/docs/reference/library/4b/#rtat",
46864707 desc: "Used in the Hoon standard library.",
46874708 },
46884709 {
4689− name: "(Undocumented)",
4710+ name: "Print cord, including escape characters",
46904711 symbol: "rta:at",
46914712 usage: "stdlib",
46924713 slug: "https://urbit.org/docs/reference/library/4b/#rtaat",
46934714 desc: "Used in the Hoon standard library.",
46944715 },
46954716 {
4696− name: "(Undocumented)",
4717+ name: "Print cord with @tas syntax",
46974718 symbol: "rtam:at",
46984719 usage: "stdlib",
46994720 slug: "https://urbit.org/docs/reference/library/4b/#rtamat",
@@ -4707,14 +4728,14 @@ export const glossary = [
47074728 desc: "Used in the Hoon standard library.",
47084729 },
47094730 {
4710− name: "(Undocumented)",
4731+ name: "Print binary",
47114732 symbol: "rub:at",
47124733 usage: "stdlib",
47134734 slug: "https://urbit.org/docs/reference/library/4b/#rubat",
47144735 desc: "Used in the Hoon standard library.",
47154736 },
47164737 {
4717− name: "(Undocumented)",
4738+ name: "Print atom as integer",
47184739 symbol: "rud:at",
47194740 usage: "stdlib",
47204741 slug: "https://urbit.org/docs/reference/library/4b/#rudat",
@@ -4728,7 +4749,7 @@ export const glossary = [
47284749 desc: "Used in the Hoon standard library.",
47294750 },
47304751 {
4731− name: "(Undocumented)",
4752+ name: "Print base-n",
47324753 symbol: "rum:at",
47334754 usage: "stdlib",
47344755 slug: "https://urbit.org/docs/reference/library/4b/#rumat",
@@ -4756,7 +4777,7 @@ export const glossary = [
47564777 desc: "Used in the Hoon standard library.",
47574778 },
47584779 {
4759− name: "(Undocumented)",
4780+ name: "Print @p (outdated)",
47604781 symbol: "rup:at",
47614782 usage: "stdlib",
47624783 slug: "https://urbit.org/docs/reference/library/4b/#rupat",
@@ -4784,14 +4805,14 @@ export const glossary = [
47844805 desc: "Used in the Hoon standard library.",
47854806 },
47864807 {
4787− name: "(Undocumented)",
4808+ name: "Print base-64",
47884809 symbol: "ruv:at",
47894810 usage: "stdlib",
47904811 slug: "https://urbit.org/docs/reference/library/4b/#ruvat",
47914812 desc: "Used in the Hoon standard library.",
47924813 },
47934814 {
4794− name: "(Undocumented)",
4815+ name: "Print hexadecimal",
47954816 symbol: "rux:at",
47964817 usage: "stdlib",
47974818 slug: "https://urbit.org/docs/reference/library/4b/#ruxat",
@@ -5742,6 +5763,13 @@ export const glossary = [
57425763 slug: "https://urbit.org/docs/reference/library/3a/#synsi",
57435764 desc: "Used in the Hoon standard library.",
57445765 },
5766+ {
5767+ name: "UTF-8 to UTF-32 cord",
5768+ symbol: "taft",
5769+ usage: "stdlib",
5770+ slug: "https://urbit.org/docs/reference/library/4b/#taft",
5771+ desc: "Used in the Hoon standard library.",
5772+ },
57455773 {
57465774 name: "Get tail of cell",
57475775 symbol: "tail",
@@ -5966,6 +5994,13 @@ export const glossary = [
59665994 slug: "https://urbit.org/docs/reference/library/3b/#tojfl",
59675995 desc: "Used in the Hoon standard library.",
59685996 },
5997+ {
5998+ name: "Compute base58check checksum",
5999+ symbol: "tok:fa",
6000+ usage: "stdlib",
6001+ slug: "https://urbit.org/docs/reference/library/4a/#tokfa",
6002+ desc: "Used in the Hoon standard library.",
6003+ },
59696004 {
59706005 name: "Nock result (error report)",
59716006 symbol: "tone",
@@ -6071,13 +6106,6 @@ export const glossary = [
60716106 slug: "https://urbit.org/docs/reference/library/4b/#tuft",
60726107 desc: "Used in the Hoon standard library.",
60736108 },
6074− {
6075− name: "UTF-8 to UTF-32 cord",
6076− symbol: "turf",
6077− usage: "stdlib",
6078− slug: "https://urbit.org/docs/reference/library/4b/#turf",
6079− desc: "Used in the Hoon standard library.",
6080− },
60816109 {
60826110 name: "Gate to list",
60836111 symbol: "turn",
@@ -6254,7 +6282,7 @@ export const glossary = [
62546282 desc: "Used in the Hoon standard library.",
62556283 },
62566284 {
6257− name: "Coin format encode",
6285+ name: "Knot escape",
62586286 symbol: "wack",
62596287 usage: "stdlib",
62606288 slug: "https://urbit.org/docs/reference/library/4b/#wack",
@@ -6296,7 +6324,7 @@ export const glossary = [
62966324 desc: "Used in the Hoon standard library.",
62976325 },
62986326 {
6299− name: "Coin format decode",
6327+ name: "Knot unescape",
63006328 symbol: "wick",
63016329 usage: "stdlib",
63026330 slug: "https://urbit.org/docs/reference/library/4b/#wick",
@@ -6688,6 +6716,13 @@ export const glossary = [
66886716 slug: "https://urbit.org/docs/hoon/reference/zuse/2e_2-3/#de-jsonhtml",
66896717 desc: "Used in the Zuse library.",
66906718 },
6719+ {
6720+ name: "Decode base58check",
6721+ symbol: "den:fa",
6722+ usage: "stdlib",
6723+ slug: "https://urbit.org/docs/reference/library/4a/#denfa",
6724+ desc: "Used in the Hoon standard library.",
6725+ },
66916726 {
66926727 name: "Decode json (unit): Millisecond date",
66936728 symbol: "di:dejs-soft:format",
@@ -6912,6 +6947,13 @@ export const glossary = [
69126947 slug: "https://urbit.org/docs/hoon/reference/zuse/2d_6/#oudejsformat",
69136948 desc: "Used in the Zuse library.",
69146949 },
6950+ {
6951+ name: "base58check padding bytes",
6952+ symbol: "pad:fa",
6953+ usage: "stdlib",
6954+ slug: "https://urbit.org/docs/reference/library/4a/#padfa",
6955+ desc: "Used in the Hoon standard library.",
6956+ },
69156957 {
69166958 name: "Decode json: String as path",
69176959 symbol: "pa:dejs:format",