@@ -4,15 +4,15 @@ weight = 6
44template = "doc.html"
55+++
66
7−### `++bex`
7+## `++bex`
88
99Binary exponent
1010
11−Computes the result of `2^a`, producing an atom.
11+Computes the result of `2^a`, where `a` is a block size (see [$bloq](/docs/hoon/reference/stdlib/1c#bloq)), producing an atom.
1212
1313#### Accepts
1414
15−`a` is an atom.
15+`a` is an `bloq`.
1616
1717#### Produces
1818
@@ -21,30 +21,34 @@ An atom.
2121#### Source
2222
2323```hoon
24− ++ bex
25− ~/ %bex
26− |= a=@
27− ^- @
28− ?: =(0 a) 1
29− (mul 2 $(a (dec a)))
24+++ bex
25+ ~/ %bex
26+ |= a=bloq
27+ ^- @
28+ ?: =(0 a) 1
29+ (mul 2 $(a (dec a)))
3030```
3131
3232#### Examples
3333
3434```
35− > (bex 4)
36− 16
35+> (bex 4)
36+16
37+```
3738
38− > (bex (add 19 1))
39− 1.048.576
39+```
40+> (bex (add 19 1))
41+1.048.576
42+```
4043
41− > (bex 0)
42− 1
44+```
45+> (bex 0)
46+1
4347```
4448
4549---
4650
47−### `++can`
51+## `++can`
4852
4953Assemble
5054
@@ -54,9 +58,12 @@ value.
5458
5559#### Accepts
5660
57−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
61+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq)).
5862
59−`b` is a `list` of length-value pairs, `p` and `q`.
63+`b` is a `list` of length-value pairs, `p` and `q`:
64+
65+- `p` is a [step](/docs/hoon/reference/stdlib/1c/#step).
66+- `q` is a `@`.
6067
6168#### Produces
6269
@@ -65,45 +72,59 @@ An atom.
6572#### Source
6673
6774```hoon
68− ++ can
69− ~/ %can
70− |= [a=bloq b=(list [p=@ q=@])]
71− ^- @
72− ?~ b 0
73− (add (end a p.i.b q.i.b) (lsh a p.i.b $(b t.b)))
75+++ can
76+ ~/ %can
77+ |= [a=bloq b=(list [p=step q=@])]
78+ ^- @
79+ ?~ b 0
80+ (add (end [a p.i.b] q.i.b) (lsh [a p.i.b] $(b t.b)))
7481```
7582
7683#### Examples
7784
7885```
79− > `@ub`21 :: @ub is the binary aura
80− 0b1.0101
86+> `@ub`21 :: @ub is the binary aura
87+0b1.0101
88+```
8189
82− > `@ub`(can 3 ~[[1 21]])
83− 0b1.0101
90+```
91+> `@ub`(can 3 ~[[1 21]])
92+0b1.0101
93+```
8494
85− > `@ub`(can 3 ~[[1 1]])
86− 0b1
95+```
96+> `@ub`(can 3 ~[[1 1]])
97+0b1
98+```
8799
88− > `@ub`(can 0 ~[[1 255]])
89− 0b1
100+```
101+> `@ub`(can 0 ~[[1 255]])
102+0b1
103+```
90104
91− > `@ux`(can 3 [3 0xc1] [1 0xa] ~) :: @ux is the hexadecimal aura
92− 0xa00.00c1
105+```
106+> `@ux`(can 3 [3 0xc1] [1 0xa] ~) :: @ux is the hexadecimal aura
107+0xa00.00c1
108+```
93109
94− > `@ux`(can 3 [3 0xc1] [1 0xa] [1 0x23] ~)
95− 0x23.0a00.00c1
110+```
111+> `@ux`(can 3 [3 0xc1] [1 0xa] [1 0x23] ~)
112+0x23.0a00.00c1
113+```
96114
97− > `@ux`(can 4 [3 0xc1] [1 0xa] [1 0x23] ~)
98− 0x23.000a.0000.0000.00c1
115+```
116+> `@ux`(can 4 [3 0xc1] [1 0xa] [1 0x23] ~)
117+0x23.000a.0000.0000.00c1
118+```
99119
100− > `@ux`(can 3 ~[[1 'a'] [2 'bc']])
101− 0x63.6261
120+```
121+> `@ux`(can 3 ~[[1 'a'] [2 'bc']])
122+0x63.6261
102123```
103124
104125---
105126
106−### `++cat`
127+## `++cat`
107128
108129Concatenate
109130
@@ -112,7 +133,7 @@ atom.
112133
113134#### Accepts
114135
115−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
136+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq)).
116137
117138`b` is an atom.
118139
@@ -125,49 +146,43 @@ An atom.
125146#### Source
126147
127148```hoon
128− ++ cat
129− ~/ %cat
130− |= [a=bloq b=@ c=@]
131− (add (lsh a (met a b) c) b)
149+++ cat
150+ ~/ %cat
151+ |= [a=bloq b=@ c=@]
152+ (add (lsh [a (met a b)] c) b)
132153```
133154
134155#### Examples
135156
136157```
137− > `@ub`(cat 3 1 0) :: @ub is the binary aura
138− 0b1
139−
140− > `@ub`(cat 0 1 1)
141− 0b11
142−
143− > `@ub`(cat 0 2 1)
144− 0b110
145−
146− > `@ub`(cat 2 1 1)
147− 0b1.0001
148−
149− > `@ub`256
150− 0b1.0000.0000
151−
152− > `@ub`255
153− 0b1111.1111
154−
155− > `@ub`(cat 3 256 255)
156− 0b1111.1111.0000.0001.0000.0000
157−
158− > `@ub`(cat 2 256 255)
159− 0b1111.1111.0001.0000.0000
160−
161− > (cat 3 256 255)
162− 16.711.936
158+> `@ub`(cat 3 1 0) :: @ub is the binary aura
159+0b1
160+> `@ub`(cat 0 1 1)
161+0b11
162+> `@ub`(cat 0 2 1)
163+0b110
164+> `@ub`(cat 2 1 1)
165+0b1.0001
166+```
163167
164− > (cat 2 256 255)
165− 1.044.736
168+```
169+> `@ub`256
170+0b1.0000.0000
171+> `@ub`255
172+0b1111.1111
173+> `@ub`(cat 3 256 255)
174+0b1111.1111.0000.0001.0000.0000
175+> `@ub`(cat 2 256 255)
176+0b1111.1111.0001.0000.0000
177+> (cat 3 256 255)
178+16.711.936
179+> (cat 2 256 255)
180+1.044.736
166181```
167182
168183---
169184
170−### `++cut`
185+## `++cut`
171186
172187Slice
173188
@@ -176,11 +191,12 @@ Slices `c` blocks of size `a` that are positioned `b` blocks from the end of
176191
177192#### Accepts
178193
179−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
194+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c)).
180195
181−`b` is an atom.
196+`[b c]` where:
182197
183−`c` is an atom.
198+- `b` is a [step](/docs/hoon/reference/stdlib/1c#step).
199+- `c` is a [step](/docs/hoon/reference/stdlib/1c#step).
184200
185201`d` is an atom.
186202
@@ -191,43 +207,42 @@ An atom.
191207#### Source
192208
193209```hoon
194− ++ cut
195− ~/ %cut
196− |= [a=bloq [b=@u c=@u] d=@]
197− (end a c (rsh a b d))
210+++ cut
211+ ~/ %cut
212+ |= [a=bloq [b=step c=step] d=@]
213+ (end [a c] (rsh [a b] d))
198214```
199215
200216#### Examples
201217
202218```
203− > (cut 0 [1 1] 2)
204− 1
205−
206− > (cut 0 [2 1] 4)
207− 1
208−
209− > `@t`(cut 3 [0 3] 'abcdefgh')
210− 'abc'
211−
212− > `@t`(cut 3 [1 3] 'abcdefgh') :: @t is the cord aura
213− 'bcd'
214−
215− > `@ub`(cut 0 [0 3] 0b1111.0000.1101) :: @ub is the binary aura
216− 0b101
217−
218− > `@ub`(cut 0 [0 6] 0b1111.0000.1101)
219− 0b1101
219+> (cut 0 [1 1] 2)
220+1
221+> (cut 0 [2 1] 4)
222+1
223+```
220224
221− > `@ub`(cut 0 [4 6] 0b1111.0000.1101)
222− 0b11.0000
225+```
226+> `@t`(cut 3 [0 3] 'abcdefgh') :: @t is the cord aura
227+'abc'
228+> `@t`(cut 3 [1 3] 'abcdefgh')
229+'bcd'
230+```
223231
224− > `@ub`(cut 0 [3 6] 0b1111.0000.1101)
225− 0b10.0001
232+```
233+> `@ub`(cut 0 [0 3] 0b1111.0000.1101) :: @ub is the binary aura
234+0b101
235+> `@ub`(cut 0 [0 6] 0b1111.0000.1101)
236+0b1101
237+> `@ub`(cut 0 [4 6] 0b1111.0000.1101)
238+0b11.0000
239+> `@ub`(cut 0 [3 6] 0b1111.0000.1101)
240+0b10.0001
226241```
227242
228243---
229244
230−### `++end`
245+## `++end`
231246
232247Tail
233248
@@ -235,8 +250,8 @@ Produces an atom by taking the last `step` blocks of size `bloq` from `b`.
235250
236251#### Accepts
237252
238−`a` is an atom slice specifier (see [`++bite`](/docs/hoon/reference/stdlib/1c#bite)),
239−which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
253+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
254+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
240255with optional block count.
241256
242257`b` is an atom.
@@ -248,56 +263,51 @@ An atom.
248263#### Source
249264
250265```hoon
251− ++ end
252− ~/ %end
253− |= [a=bite b=@]
254− =/ [=bloq =step] ?^(a a [a *step])
255− (mod b (bex (mul (bex bloq) step)))
266+++ end
267+ ~/ %end
268+ |= [a=bite b=@]
269+ =/ [=bloq =step] ?^(a a [a *step])
270+ (mod b (bex (mul (bex bloq) step)))
256271```
257272
258273#### Examples
259274
260275```
261− > (end [2 2] 255)
262− 255
263−
264− > (end [3 1] 255)
265− 255
266−
267− > (end 3 255)
268− 255
269−
270− > (end 3 256)
271− 0
272−
273− > `@ub`12 :: @ub is the binary aura
274− 0b1100
275−
276− > `@ub`(end [0 3] 12)
277− 0b100
278−
279− > (end [0 3] 12)
280− 4
281−
282− > `@ub`(end [1 3] 12)
283− 0b1100
284−
285− > (end [1 3] 12)
286− 12
287−
288− > `@ux`'abc' :: @ux is the hexademical aura
289− 0x63.6261
276+> (end [2 2] 255)
277+255
278+> (end [3 1] 255)
279+255
280+> (end 3 255)
281+255
282+> (end 3 256)
283+0
284+```
290285
291− > `@ux`(end [3 2] 'abc')
292− 0x6261
286+```
287+> `@ub`12 :: @ub is the binary aura
288+0b1100
289+> `@ub`(end [0 3] 12)
290+0b100
291+> (end [0 3] 12)
292+4
293+> `@ub`(end [1 3] 12)
294+0b1100
295+> (end [1 3] 12)
296+12
297+```
293298
294− > `@t`(end [3 2] 'abc') :: @t is the cord aura
295− 'ab'
299+```
300+> `@ux`'abc' :: @ux is the hexademical aura
301+0x63.6261
302+> `@ux`(end [3 2] 'abc')
303+0x6261
304+> `@t`(end [3 2] 'abc') :: @t is the cord aura
305+'ab'
296306```
297307
298308---
299309
300−### `++fil`
310+## `++fil`
301311
302312Fill bloqstream
303313
@@ -305,9 +315,9 @@ Produces an atom by repeating `c` for `b` blocks of size `a`.
305315
306316#### Accepts
307317
308−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
318+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq)).
309319
310−`b` is an atom.
320+`b` is a [step](/docs/hoon/reference/stdlib/1c#step).
311321
312322`c` is an atom.
313323
@@ -318,38 +328,48 @@ An atom.
318328#### Source
319329
320330```hoon
321− ++ fil
322− |= [a=bloq b=@u c=@]
323− =+ n=0
324− =+ d=c
325− |- ^- @
326− ?: =(n b)
327− (rsh a 1 d)
328− $(d (add c (lsh a 1 d)), n +(n))
331+++ fil
332+ ~/ %fil
333+ |= [a=bloq b=step c=@]
334+ =| n=@ud
335+ =. c (end a c)
336+ =/ d c
337+ |- ^- @
338+ ?: =(n b)
339+ (rsh a d)
340+ $(d (add c (lsh a d)), n +(n))
329341```
330342
331343#### Examples
332344
333345```
334− > `@t`(fil 3 5 %a) :: @t is the cord (string) aura
335− 'aaaaa'
346+> `@t`(fil 3 5 %a) :: @t is the cord (string) aura
347+'aaaaa'
348+```
336349
337− > `@t`(fil 5 10 %ceeb)
338− 'ceebceebceebceebceebceebceebceebceebceeb'
350+```
351+> `@t`(fil 5 10 %ceeb)
352+'ceebceebceebceebceebceebceebceebceebceeb'
353+```
339354
340− > `@t`(fil 4 10 %eced)
341− 'ʇʇʇʇʇʇʇʇʇʇed'
355+```
356+> `@t`(fil 4 10 'eced')
357+'ecececececececececec'
358+```
342359
343− > `@tas`(fil 4 10 %bf) :: @tas is the term aura
344− %bfbfbfbfbfbfbfbfbfbf
360+```
361+> `@tas`(fil 4 10 %bf) :: @tas is the term aura
362+%bfbfbfbfbfbfbfbfbfbf
363+```
345364
346− > `@ub`(fil 2 6 1) :: @ub is the binary aura
347− 0b1.0001.0001.0001.0001.0001
365+```
366+> `@ub`(fil 2 6 1) :: @ub is the binary aura
367+0b1.0001.0001.0001.0001.0001
348368```
349369
350370---
351371
352−### `++lsh`
372+## `++lsh`
353373
354374Left-shift
355375
@@ -357,8 +377,8 @@ Produces an atom by left-shifting `b` by `step` blocks of size `bloq`.
357377
358378#### Accepts
359379
360−`a` is an atom slice specifier (see [`++bite`](/docs/hoon/reference/stdlib/1c#bite)),
361−which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
380+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
381+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
362382with optional block count.
363383
364384`b` is an atom.
@@ -370,41 +390,38 @@ An atom.
370390#### Source
371391
372392```hoon
373− ++ lsh
374− ~/ %lsh
375− |= [a=bite b=@]
376− =/ [=bloq =step] ?^(a a [a *step])
377− (mul b (bex (mul (bex bloq) step)))
393+++ lsh
394+ ~/ %lsh
395+ |= [a=bite b=@]
396+ =/ [=bloq =step] ?^(a a [a *step])
397+ (mul b (bex (mul (bex bloq) step)))
378398```
379399
380400#### Examples
381401
382402```
383− > `@ub`1 :: @ub is the binary aura
384− 0b1
385−
386− > `@ub`(lsh [0 1] 1)
387− 0b10
388−
389− > (lsh [0 1] 1)
390− 2
391−
392− > (lsh 0 1)
393− 2
394−
395− > `@ub`255
396− 0b1111.1111
397−
398− > `@ub`(lsh [3 1] 255)
399− 0b1111.1111.0000.0000
403+> `@ub`1 :: @ub is the binary aura
404+0b1
405+> `@ub`(lsh [0 1] 1)
406+0b10
407+> (lsh [0 1] 1)
408+2
409+> (lsh 0 1)
410+2
411+```
400412
401− > (lsh [3 1] 255)
402− 65.280
413+```
414+> `@ub`255
415+0b1111.1111
416+> `@ub`(lsh [3 1] 255)
417+0b1111.1111.0000.0000
418+> (lsh [3 1] 255)
419+65.280
403420```
404421
405422---
406423
407−### `++met`
424+## `++met`
408425
409426Measure
410427
@@ -412,45 +429,47 @@ Computes the number of blocks of size `a` in `b`, producing an atom.
412429
413430#### Accepts
414431
415−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
432+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c/bloq)).
416433
417434`b` is an atom.
418435
419436#### Source
420437
421438```hoon
422− ++ met
423− ~/ %met
424− |= [a=bloq b=@]
425− ^- @
426− =+ c=0
427− |-
428− ?: =(0 b) c
429− $(b (rsh a 1 b), c +(c))
439+++ met
440+ ~/ %met
441+ |= [a=bloq b=@]
442+ ^- @
443+ =+ c=0
444+ |-
445+ ?: =(0 b) c
446+ $(b (rsh a b), c +(c))
430447```
431448
432449#### Examples
433450
434451```
435− > (met 0 1)
436− 1
437−
438− > (met 0 2)
439− 2
440−
441− > (met 3 255)
442− 1
452+> (met 0 1)
453+1
454+> (met 0 2)
455+2
456+```
443457
444− > (met 3 256)
445− 2
458+```
459+> (met 3 255)
460+1
461+> (met 3 256)
462+2
463+```
446464
447− > (met 3 'abcde')
448− 5
465+```
466+> (met 3 'abcde')
467+5
449468```
450469
451470---
452471
453−### `++rap`
472+## `++rap`
454473
455474Assemble non-zero
456475
@@ -469,41 +488,39 @@ An atom.
469488#### Source
470489
471490```hoon
472− ++ rap
473− ~/ %rap
474− |= [a=bloq b=(list @)]
475− ^- @
476− =+ ~
477− ?~ b 0
478− (cat a i.b $(b t.b))
491+++ rap
492+ ~/ %rap
493+ |= [a=bloq b=(list @)]
494+ ^- @
495+ ?~ b 0
496+ (cat a i.b $(b t.b))
479497```
480498
481499#### Examples
482500
483501```
484− > `@ub`(rap 2 [1 2 3 4 ~]) :: @ub is the binary aura
485− 0b100.0011.0010.0001
486−
487− > `@ub`(rap 1 [1 2 3 4 ~])
488− 0b1.0011.1001
489−
490− > (rap 0 [0 0 0 ~])
491− 0
492−
493− > (rap 0 [1 0 1 ~])
494− 3
495−
496− > `@ub`3
497− 0b11
498−
499− > (rap 0 [0 1 0 0 1 2 ~])
500− 11
502+> `@ub`(rap 2 [1 2 3 4 ~]) :: @ub is the binary aura
503+0b100.0011.0010.0001
504+> `@ub`(rap 1 [1 2 3 4 ~])
505+0b1.0011.1001
506+```
501507
502− > (rap 0 [1 1 2 ~])
503− 11
508+```
509+> (rap 0 [0 0 0 ~])
510+0
511+> (rap 0 [1 0 1 ~])
512+3
513+```
504514
505− > `@ub`11
506− 0b1011
515+```
516+> `@ub`3
517+0b11
518+> (rap 0 [0 1 0 0 1 2 ~])
519+11
520+> (rap 0 [1 1 2 ~])
521+11
522+> `@ub`11
523+0b1011
507524```
508525
509526#### Discussion
@@ -512,7 +529,7 @@ Any element of the value `0` is not included in concatenation.
512529
513530---
514531
515−### `++rep`
532+## `++rep`
516533
517534Assemble single
518535
@@ -533,63 +550,69 @@ An atom.
533550#### Source
534551
535552```hoon
536− ++ rep
537− ~/ %rep
538− |= [a=bite b=(list @)]
539− =/ [=bloq =step] ?^(a a [a *step])
540− =| i=@ud
541− |- ^- @
542− ?~ b 0
543− %+ add $(i +(i), b t.b)
544− (lsh [bloq (mul step i)] (end [bloq step] i.b))
553+++ rep
554+ ~/ %rep
555+ |= [a=bite b=(list @)]
556+ =/ [=bloq =step] ?^(a a [a *step])
557+ =| i=@ud
558+ |- ^- @
559+ ?~ b 0
560+ %+ add $(i +(i), b t.b)
561+ (lsh [bloq (mul step i)] (end [bloq step] i.b))
545562```
546563
547564#### Examples
548565
549566```
550− > `@ub`(rep 2 [1 2 3 4 ~]) :: @ub is the binary aura
551− 0b100.0011.0010.0001
552−
553− > (rep 0 [0 0 1 ~])
554− 4
555−
556− > (rep 0 [0 0 0 1 ~])
557− 8
558−
559− > `@ub`(rep 0 [0 0 0 1 ~])
560− 0b1000
561−
562− > `@ub`8
563− 0b1000
564−
565− > `@ub`(rep 0 [1 0 1 0 ~])
566− 0b101
567−
568− > `@ub`(rep 0 [1 2 3 4 ~])
569− 0b101
567+> `@ub`(rep 2 [1 2 3 4 ~]) :: @ub is the binary aura
568+0b100.0011.0010.0001
569+```
570570
571− > (rep 0 [0 1 0 1 ~])
572− 10
571+```
572+> (rep 0 [0 0 1 ~])
573+4
574+> (rep 0 [0 0 0 1 ~])
575+8
576+```
573577
574− > (rep 0 [1 0 1 0 1 ~])
575− 21
578+```
579+> `@ub`(rep 0 [0 0 0 1 ~])
580+0b1000
581+> `@ub`8
582+0b1000
583+```
576584
577− > `@ub`21
578− 0b10.1010
585+```
586+> `@ub`(rep 0 [1 0 1 0 ~])
587+0b101
588+> `@ub`(rep 0 [1 2 3 4 ~])
589+0b101
590+```
579591
580− > `@ub`(rep 3 [12 166 8 34 ~])
581− 0b10.0010.0000.1000.1010.0110.0000.1100
592+```
593+> (rep 0 [0 1 0 1 ~])
594+10
595+> (rep 0 [1 0 1 0 1 ~])
596+21
597+> `@ub`21
598+0b10.1010
599+```
582600
583− > `*`"abcd"
584− [97 98 99 100 0]
601+```
602+> `@ub`(rep 3 [12 166 8 34 ~])
603+0b10.0010.0000.1000.1010.0110.0000.1100
604+```
585605
586− > `@t`(rep 3 "abcd") :: @t is the text aura
587− 'abcd'
606+```
607+> `*`"abcd"
608+[97 98 99 100 0]
609+> `@t`(rep 3 "abcd") :: @t is the text aura
610+'abcd'
588611```
589612
590613---
591614
592−### `++rev`
615+## `++rev`
593616
594617Reverses block order, accounting for leading zeroes.
595618
@@ -630,35 +653,30 @@ An atom.
630653
631654```
632655> =a 0b1111.0000.1111.1010.0011
633−
634656> `@ub`(rev 0 20 a)
6356570b1100.0101.1111.0000.1111
636−
637658> `@ub`(rev 0 12 a)
6386590b1100.0101.1111
639−
640660> `@ub`(rev 2 5 a)
6416610b11.1010.1111.0000.1111
642−
643662> `@ub`(rev 2 4 a)
6446630b11.1010.1111.0000
645−
646664> `@ub`(rev 2 6 a)
6476650b11.1010.1111.0000.1111.0000
666+```
648667
668+```
649669> (rev 1 10 1.000)
650670179.200
651−
652671> (rev 2 5 1.000)
653672582.400
654−
655673> (rev 1 5 1.000)
656674175
657675```
658676
659677---
660678
661−### `++rip`
679+## `++rip`
662680
663681Disassemble
664682
@@ -679,51 +697,51 @@ A list of atoms.
679697#### Source
680698
681699```hoon
682− ++ rip
683− ~/ %rip
684− |= [a=bite b=@]
685− ^- (list @)
686− ?: =(0 b) ~
687− [(end a b) $(b (rsh a b))]
700+++ rip
701+ ~/ %rip
702+ |= [a=bite b=@]
703+ ^- (list @)
704+ ?: =(0 b) ~
705+ [(end a b) $(b (rsh a b))]
688706```
689707
690708#### Examples
691709
692710```
693− > `@ub`155 :: @ub is the binary aura
694− 0b1001.1011
695−
696− > (rip 0 155)
697− ~[1 1 0 1 1 0 0 1]
698−
699− > (rip 2 155)
700− ~[11 9]
701−
702− > (rip 0 11)
703− ~[1 1 0 1]
704−
705− > (rip 1 155)
706− ~[3 2 1 2]
707−
708− > `@ub`256
709− 0b1.0000.0000
710−
711− > (rip 0 256)
712− ~[0 0 0 0 0 0 0 0 1]
711+> `@ub`155 :: @ub is the binary aura
712+0b1001.1011
713+> (rip 0 155)
714+~[1 1 0 1 1 0 0 1]
715+> (rip 2 155)
716+~[11 9]
717+```
713718
714− > (rip 2 256)
715− ~[0 0 1]
719+```
720+> (rip 0 11)
721+~[1 1 0 1]
722+> (rip 1 155)
723+~[3 2 1 2]
724+```
716725
717− > (rip 3 256)
718− ~[0 1]
726+```
727+> `@ub`256
728+0b1.0000.0000
729+> (rip 0 256)
730+~[0 0 0 0 0 0 0 0 1]
731+> (rip 2 256)
732+~[0 0 1]
733+> (rip 3 256)
734+~[0 1]
735+```
719736
720− > `tape`(rip 3 'abcd')
721− "abcd"
737+```
738+> `tape`(rip 3 'abcd')
739+"abcd"
722740```
723741
724742---
725743
726−### `++rsh`
744+## `++rsh`
727745
728746Right-shift
729747
@@ -744,56 +762,51 @@ An atom.
744762#### Source
745763
746764```hoon
747− ++ rsh
748− ~/ %rsh
749− |= [a=bite b=@]
750− =/ [=bloq =step] ?^(a a [a *step])
751− (div b (bex (mul (bex bloq) step)))
765+++ rsh
766+ ~/ %rsh
767+ |= [a=bite b=@]
768+ =/ [=bloq =step] ?^(a a [a *step])
769+ (div b (bex (mul (bex bloq) step)))
752770```
753771
754772#### Examples
755773
756774```
757− > `@ub`145 :: @ub is the binary aura
758− 0b1001.0001
759−
760− > `@ub`(rsh [1 1] 145)
761− 0b10.0100
762−
763− > (rsh [1 1] 145)
764− 36
765−
766− > (rsh 1 145)
767− 36
768−
769− > `@ub`(rsh [2 1] 145)
770− 0b1001
771−
772− > (rsh [2 1] 145)
773− 9
774−
775− > `@ub`10
776− 0b1010
777−
778− > `@ub`(rsh [0 1] 10)
779− 0b101
780−
781− > (rsh [0 1] 10)
782− 5
783−
784− > `@ux`'abc'
785− 0x63.6261
775+> `@ub`145 :: @ub is the binary aura
776+0b1001.0001
777+> `@ub`(rsh [1 1] 145)
778+0b10.0100
779+> (rsh [1 1] 145)
780+36
781+> (rsh 1 145)
782+36
783+> `@ub`(rsh [2 1] 145)
784+0b1001
785+> (rsh [2 1] 145)
786+9
787+```
786788
787− > `@t`(rsh [3 1] 'abc')
788− 'bc'
789+```
790+> `@ub`10
791+0b1010
792+> `@ub`(rsh [0 1] 10)
793+0b101
794+> (rsh [0 1] 10)
795+5
796+```
789797
790− > `@ux`(rsh [3 1] 'abc')
791− 0x6362
798+```
799+> `@ux`'abc'
800+0x63.6261
801+> `@t`(rsh [3 1] 'abc')
802+'bc'
803+> `@ux`(rsh [3 1] 'abc')
804+0x6362
792805```
793806
794807---
795808
796−### `++run`
809+## `++run`
797810
798811`++turn` into atom.
799812
@@ -817,25 +830,24 @@ An atom.
817830#### Source
818831
819832```hoon
820− ++ run
821− ~/ %run
822− |= [a=bite b=@ c=$-(@ @)]
823− (rep a (turn (rip a b) c))
833+++ run
834+ ~/ %run
835+ |= [a=bite b=@ c=$-(@ @)]
836+ (rep a (turn (rip a b) c))
824837```
825838
826839#### Examples
827840
828841```
829− > `@ux`65.535 :: @ux is the hexadecimal aura
842+ > `@ux`65.535 :: @ux is the hexadecimal aura
830843 0xffff
831−
832− > `@ux`(run 2 65.535 dec) :: dec is the decrement gate
844+ > `@ux`(run 2 65.535 dec) :: dec is the decrement gate
833845 0xeeee
834846```
835847
836848---
837849
838−### `++rut`
850+## `++rut`
839851
840852`++turn` into list.
841853
@@ -859,25 +871,80 @@ A list.
859871#### Source
860872
861873```hoon
862− ++ rut
863− ~/ %rut
864− |* [a=bite b=@ c=$-(@ *)]
865− (turn (rip a b) c)
874+++ rut
875+ ~/ %rut
876+ |* [a=bite b=@ c=$-(@ *)]
877+ (turn (rip a b) c)
866878```
867879
868880#### Examples
869881
870882```
871− > `@ux`65.535 :: @ux is the hexadecimal aura
872− 0xffff
883+> `@ux`65.535 :: @ux is the hexadecimal aura
884+0xffff
885+> `(list @ux)`(rut 2 65.535 dec) :: dec is the decrement gate
886+~[0xe 0xe 0xe 0xe]
887+```
888+
889+---
890+
891+## `++sew`
892+
893+Stitch one atom into another
894+
895+Replace `c` blocks of size `a` at offset `b` of atom `e` with `c` blocks of size `a` from atom `d`.
896+
897+That is, take `(end [a c] d)` from `d` and overwrite the `(cut a [b c] e)` part of `e`.
898+
899+Or in simpler terms, take from the start of `d` and replace some part of `e` with it.
900+
901+#### Accepts
873902
874− > `(list @ux)`(rut 2 65.535 dec) :: dec is the decrement gate
875− ~[0xe 0xe 0xe 0xe]
903+`a` is a [$bloq](/docs/hoon/reference/stdlib/1c#bite) (block size).
904+
905+`[b c d]` where:
906+
907+- `b` is a [step](/docs/hoon/reference/stdlib/1c#step) specifying the number of `bloq`s to offset.
908+- `b` is a [step](/docs/hoon/reference/stdlib/1c#step) specifying the number of `bloq`s to replace.
909+- `d` is the donor atom.
910+
911+`e` is the recipient atom.
912+
913+#### Produces
914+
915+An atom.
916+
917+#### Source
918+
919+```hoon
920+++ sew
921+ ~/ %sew
922+ |= [a=bloq [b=step c=step d=@] e=@]
923+ ^- @
924+ %+ add
925+ (can a b^e c^d ~)
926+ =/ f [a (add b c)]
927+ (lsh f (rsh f e))
928+```
929+
930+#### Examples
931+
932+```
933+> `@t`(sew 3 [0 0 'XXXX'] 'OOOO')
934+'OOOO'
935+> `@t`(sew 3 [0 1 'XXXX'] 'OOOO')
936+'XOOO'
937+> `@t`(sew 3 [2 1 'XXXX'] 'OOOO')
938+'OOXO'
939+> `@t`(sew 3 [2 2 'XXXX'] 'OOOO')
940+'OOXX'
941+> `@t`(sew 3 [0 4 'XXXX'] 'OOOO')
942+'XXXX'
876943```
877944
878945---
879946
880−### `++swp`
947+## `++swp`
881948
882949Reverse block order
883950
@@ -886,7 +953,7 @@ reversing the block order of `b` using block size `a`.
886953
887954#### Accepts
888955
889−`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
956+`a` is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq)).
890957
891958`b` is an atom.
892959
@@ -897,31 +964,33 @@ An atom
897964#### Source
898965
899966```hoon
900− ++ swp |=([a=bloq b=@] (rep a (flop (rip a b))))
967+++ swp
968+ ~/ %swp
969+ |= [a=bloq b=@]
970+ (rep a (flop (rip a b)))
901971```
902972
903973#### Examples
904974
905975```
906− > `@ub`24 :: @ub is the binary aura
907− 0b1.1000
908−
909− > (swp 0 24)
910− 3
911−
912− > `@ub`3
913− 0b11
914−
915− > (swp 0 0)
916− 0
976+> `@ub`24 :: @ub is the binary aura
977+0b1.1000
978+> (swp 0 24)
979+3
980+> `@ub`3
981+0b11
982+```
917983
918− > (swp 0 128)
919− 1
984+```
985+> (swp 0 0)
986+0
987+> (swp 0 128)
988+1
920989```
921990
922991---
923992
924−### `++xeb`
993+## `++xeb`
925994
926995Binary logarithm
927996
@@ -938,38 +1007,48 @@ An atom.
9381007#### Source
9391008
9401009```hoon
941− ++ xeb
942− ~/ %xeb
943− |= a=@
944− ^- @
945− (met 0 a)
1010+++ xeb
1011+ ~/ %xeb
1012+ |= a=@
1013+ ^- @
1014+ (met 0 a)
9461015```
9471016
9481017#### Examples
9491018
9501019```
951− > (xeb 31)
952− 5
1020+> (xeb 31)
1021+5
1022+```
9531023
954− > (xeb 32)
955− 6
1024+```
1025+> (xeb 32)
1026+6
1027+```
9561028
957− > (xeb 49)
958− 6
1029+```
1030+> (xeb 49)
1031+6
1032+```
9591033
960− > (xeb 0)
961− 0
1034+```
1035+> (xeb 0)
1036+0
1037+```
9621038
963− > (xeb 1)
964− 1
1039+```
1040+> (xeb 1)
1041+1
1042+```
9651043
966− > (xeb 2)
967− 2
1044+```
1045+> (xeb 2)
1046+2
9681047```
9691048
9701049---
9711050
972−### `++fe`
1051+## `++fe`
9731052
9741053Modulo bloq
9751054
@@ -994,7 +1073,7 @@ representation.
9941073
9951074#### Accepts
9961075
997−`a` is a `bloq`.
1076+`a` is a `bloq` (and is the sample of the parent core).
9981077
9991078`b` is an atom.
10001079
@@ -1002,40 +1081,40 @@ representation.
10021081
10031082#### Produces
10041083
1005−A `@s`
1084+A `@s`.
10061085
10071086#### Source
10081087
10091088```hoon
1010− ++ dif |=([b=@ c=@] (sit (sub (add out (sit b)) (sit c))))
1089+ ++ dif
1090+ |=([b=@ c=@] (sit (sub (add out (sit b)) (sit c))))
10111091```
10121092
10131093#### Examples
10141094
10151095```
1016− > (~(dif fe 3) 63 64)
1017− 255
1018−
1019− > (~(dif fe 3) 5 10)
1020− 251
1021−
1022− > (~(dif fe 3) 0 1)
1023− 255
1024−
1025− > (~(dif fe 0) 9 10)
1026− 1
1027−
1028− > (~(dif fe 0) 9 11)
1029− 0
1030−
1031− > (~(dif fe 0) 9 12)
1032− 1
1096+> (~(dif fe 3) 63 64)
1097+255
1098+> (~(dif fe 3) 5 10)
1099+251
1100+> (~(dif fe 3) 0 1)
1101+255
1102+```
10331103
1034− > (~(dif fe 2) 9 12)
1035− 13
1104+```
1105+> (~(dif fe 0) 9 10)
1106+1
1107+> (~(dif fe 0) 9 11)
1108+0
1109+> (~(dif fe 0) 9 12)
1110+1
1111+```
10361112
1037− > (~(dif fe 2) 63 64)
1038− 15
1113+```
1114+> (~(dif fe 2) 9 12)
1115+13
1116+> (~(dif fe 2) 63 64)
1117+15
10391118```
10401119
10411120---
@@ -1048,7 +1127,9 @@ Inverts the order of the modular field.
10481127
10491128#### Accepts
10501129
1051−`b` is a `bloq`. (see [`++bloq`](/docs/hoon/reference/stdlib/1c))
1130+`a` is a `bloq` (and is the sample of the parent core).
1131+
1132+`b` is a `bloq`. (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
10521133
10531134#### Produces
10541135
@@ -1057,29 +1138,30 @@ An atom.
10571138#### Source
10581139
10591140```hoon
1060− ++ inv |=(b=@ (sub (dec out) (sit b)))
1141+++ inv |=(b=@ (sub (dec out) (sit b)))
10611142```
10621143
10631144#### Examples
10641145
10651146```
1066− > (~(inv fe 3) 255)
1067− 0
1068−
1069− > (~(inv fe 3) 256)
1070− 255
1071−
1072− > (~(inv fe 3) 0)
1073− 255
1074−
1075− > (~(inv fe 3) 1)
1076− 254
1147+> (~(inv fe 3) 255)
1148+0
1149+> (~(inv fe 3) 256)
1150+255
1151+```
10771152
1078− > (~(inv fe 3) 2)
1079− 253
1153+```
1154+> (~(inv fe 3) 0)
1155+255
1156+> (~(inv fe 3) 1)
1157+254
1158+> (~(inv fe 3) 2)
1159+253
1160+```
10801161
1081− > (~(inv fe 3) 55)
1082− 200
1162+```
1163+> (~(inv fe 3) 55)
1164+200
10831165```
10841166
10851167---
@@ -1092,7 +1174,9 @@ Reverses bytes within a block.
10921174
10931175#### Accepts
10941176
1095−`b` is a `bloq`. (see [`++bloq`](/docs/hoon/reference/stdlib/1c))
1177+`a` is a `bloq` (and the sample of the parent core).
1178+
1179+`b` is a `bloq`. (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
10961180
10971181#### Produces
10981182
@@ -1101,75 +1185,66 @@ An atom.
11011185#### Source
11021186
11031187```hoon
1104− ++ net |= b=@ ^- @
1105− => .(b (sit b))
1106− ?: (lte a 3)
1107− b
1108− =+ c=(dec a)
1109− %+ con
1110− (lsh c 1 $(a c, b (cut c [0 1] b)))
1111− $(a c, b (cut c [1 1] b))
1188+++ net |= b=@ ^- @
1189+ => .(b (sit b))
1190+ ?: (lte a 3)
1191+ b
1192+ =+ c=(dec a)
1193+ %+ con
1194+ (lsh c $(a c, b (cut c [0 1] b)))
1195+ $(a c, b (cut c [1 1] b))
11121196```
11131197
11141198#### Examples
11151199
11161200```
1117− > (~(net fe 3) 64)
1118− 64
1119−
1120− > (~(net fe 3) 128)
1121− 128
1122−
1123− > (~(net fe 3) 255)
1124− 255
1125−
1126− > (~(net fe 3) 256)
1127− 0
1128−
1129− > (~(net fe 3) 257)
1130− 1
1131−
1132− > (~(net fe 3) 500)
1133− 244
1134−
1135− > (~(net fe 3) 511)
1136− 255
1137−
1138− > (~(net fe 3) 512)
1139− 0
1140−
1141− > (~(net fe 3) 513)
1142− 1
1143−
1144− > (~(net fe 3) 0)
1145− 0
1146−
1147− > (~(net fe 3) 1)
1148− 1
1149−
1150− > (~(net fe 0) 1)
1151− 1
1152−
1153− > (~(net fe 0) 2)
1154− 0
1155−
1156− > (~(net fe 0) 3)
1157− 1
1158−
1159− > (~(net fe 6) 1)
1160− 72.057.594.037.927.936
1161−
1162− > (~(net fe 6) 2)
1163− 144.115.188.075.855.872
1201+> (~(net fe 3) 64)
1202+64
1203+> (~(net fe 3) 128)
1204+128
1205+> (~(net fe 3) 255)
1206+255
1207+> (~(net fe 3) 256)
1208+0
1209+> (~(net fe 3) 257)
1210+1
1211+```
11641212
1165− > (~(net fe 6) 3)
1166− 216.172.782.113.783.808
1213+```
1214+> (~(net fe 3) 500)
1215+244
1216+> (~(net fe 3) 511)
1217+255
1218+> (~(net fe 3) 512)
1219+0
1220+> (~(net fe 3) 513)
1221+1
1222+```
11671223
1168− > (~(net fe 6) 4)
1169− 288.230.376.151.711.744
1224+```
1225+> (~(net fe 3) 0)
1226+0
1227+> (~(net fe 3) 1)
1228+1
1229+> (~(net fe 0) 1)
1230+1
1231+> (~(net fe 0) 2)
1232+0
1233+> (~(net fe 0) 3)
1234+1
1235+```
11701236
1171− > (~(net fe 6) 5)
1172− 360.287.970.189.639.680
1237+```
1238+> (~(net fe 6) 1)
1239+72.057.594.037.927.936
1240+> (~(net fe 6) 2)
1241+144.115.188.075.855.872
1242+> (~(net fe 6) 3)
1243+216.172.782.113.783.808
1244+> (~(net fe 6) 4)
1245+288.230.376.151.711.744
1246+> (~(net fe 6) 5)
1247+360.287.970.189.639.680
11731248```
11741249
11751250---
@@ -1182,7 +1257,7 @@ Produces the maximum integer value that the current block can store; `2^a^a`.
11821257
11831258#### Accepts
11841259
1185−`a` is a `bloq`.
1260+`a` is a `bloq` (and is the sample of the parent core).
11861261
11871262#### Produces
11881263
@@ -1191,35 +1266,33 @@ An atom.
11911266#### Source
11921267
11931268```hoon
1194− ++ out (bex (bex a))
1269+++ out (bex (bex a))
11951270```
11961271
11971272#### Examples
11981273
11991274```
1200− > ~(out fe 0)
1201− 2
1202−
1203− > ~(out fe 1)
1204− 4
1205−
1206− > ~(out fe 2)
1207− 16
1208−
1209− > ~(out fe 3)
1210− 256
1211−
1212− > ~(out fe 4)
1213− 65.536
1275+> ~(out fe 0)
1276+2
1277+> ~(out fe 1)
1278+4
1279+> ~(out fe 2)
1280+16
1281+> ~(out fe 3)
1282+256
1283+> ~(out fe 4)
1284+65.536
1285+```
12141286
1215− > ~(out fe 10)
1216− \/179.769.313.486.231.590.772.930.519.078.902.473.361.797.697.894.230.657.273\/
1217− .430.081.157.732.675.805.500.963.132.708.477.322.407.536.021.120.113.879.87
1218− 1.393.357.658.789.768.814.416.622.492.847.430.639.474.124.377.767.893.424.8
1219− 65.485.276.302.219.601.246.094.119.453.082.952.085.005.768.838.150.682.342.
1220− 462.881.473.913.110.540.827.237.163.350.510.684.586.298.239.947.245.938.479
1221− .716.304.835.356.329.624.224.137.216
1222− \/ \/
1287+```
1288+> ~(out fe 10)
1289+\/179.769.313.486.231.590.772.930.519.078.902.473.361.797.697.894.230.657.273\/
1290+ .430.081.157.732.675.805.500.963.132.708.477.322.407.536.021.120.113.879.87
1291+ 1.393.357.658.789.768.814.416.622.492.847.430.639.474.124.377.767.893.424.8
1292+ 65.485.276.302.219.601.246.094.119.453.082.952.085.005.768.838.150.682.342.
1293+ 462.881.473.913.110.540.827.237.163.350.510.684.586.298.239.947.245.938.479
1294+ .716.304.835.356.329.624.224.137.216
1295+\/ \/
12231296```
12241297
12251298---
@@ -1232,7 +1305,7 @@ Rolls `d` to the left by `c` `b`-sized blocks.
12321305
12331306#### Accepts
12341307
1235−`a` is a `bloq`.
1308+`a` is a `bloq` (and is the sample of the parent core).
12361309
12371310`b` is a `bloq`.
12381311
@@ -1247,30 +1320,32 @@ An atom.
12471320#### Source
12481321
12491322```hoon
1250− ++ rol |= [b=bloq c=@ d=@] ^- @
1251− =+ e=(sit d)
1252− =+ f=(bex (sub a b))
1253− =+ g=(mod c f)
1254− (sit (con (lsh b g e) (rsh b (sub f g) e)))
1323+++ rol |= [b=bloq c=@ d=@] ^- @
1324+ =+ e=(sit d)
1325+ =+ f=(bex (sub a b))
1326+ =+ g=(mod c f)
1327+ (sit (con (lsh [b g] e) (rsh [b (sub f g)] e)))
12551328```
12561329
12571330#### Examples
12581331
12591332```
1260− > `@ux`(~(rol fe 6) 4 3 0xabac.dedf.1213)
1261− 0x1213.0000.abac.dedf
1333+> `@ux`(~(rol fe 6) 4 3 0xabac.dedf.1213)
1334+0x1213.0000.abac.dedf
12621335
1263− > `@ux`(~(rol fe 6) 4 2 0xabac.dedf.1213)
1264− 0xdedf.1213.0000.abac
1336+> `@ux`(~(rol fe 6) 4 2 0xabac.dedf.1213)
1337+0xdedf.1213.0000.abac
1338+```
12651339
1266− > `@t`(~(rol fe 5) 3 1 'dfgh')
1267− 'hdfg'
1340+```
1341+> `@t`(~(rol fe 5) 3 1 'dfgh')
1342+'hdfg'
12681343
1269− > `@t`(~(rol fe 5) 3 2 'dfgh')
1270− 'ghdf'
1344+> `@t`(~(rol fe 5) 3 2 'dfgh')
1345+'ghdf'
12711346
1272− > `@t`(~(rol fe 5) 3 0 'dfgh')
1273− 'dfgh'
1347+> `@t`(~(rol fe 5) 3 0 'dfgh')
1348+'dfgh'
12741349```
12751350
12761351---
@@ -1283,7 +1358,7 @@ Rolls `d` to the right by `c` `b`-sized blocks.
12831358
12841359#### Accepts
12851360
1286−`a` is a `bloq`.
1361+`a` is a `bloq` (and is the sample of the parent core).
12871362
12881363`b` is a `bloq`.
12891364
@@ -1298,49 +1373,53 @@ An atom.
12981373#### Source
12991374
13001375```hoon
1301− ++ ror |= [b=bloq c=@ d=@] ^- @
1302− =+ e=(sit d)
1303− =+ f=(bex (sub a b))
1304− =+ g=(mod c f)
1305− (sit (con (rsh b g e) (lsh b (sub f g) e)))
1376+++ ror |= [b=bloq c=@ d=@] ^- @
1377+ =+ e=(sit d)
1378+ =+ f=(bex (sub a b))
1379+ =+ g=(mod c f)
1380+ (sit (con (rsh [b g] e) (lsh [b (sub f g)] e)))
13061381```
13071382
13081383#### Examples
13091384
13101385```
1311− > `@ux`(~(ror fe 6) 4 1 0xabac.dedf.1213)
1312− 0x1213.0000.abac.dedf
1386+> `@ux`(~(ror fe 6) 4 1 0xabac.dedf.1213)
1387+0x1213.0000.abac.dedf
13131388
1314− > `@ux`(~(ror fe 6) 3 5 0xabac.dedf.1213)
1315− 0xacde.df12.1300.00ab
1389+> `@ux`(~(ror fe 6) 3 5 0xabac.dedf.1213)
1390+0xacde.df12.1300.00ab
13161391
1317− > `@ux`(~(ror fe 6) 3 3 0xabac.dedf.1213)
1318− 0xdf12.1300.00ab.acde
1392+> `@ux`(~(ror fe 6) 3 3 0xabac.dedf.1213)
1393+0xdf12.1300.00ab.acde
1394+```
13191395
1320− > `@t`(~(rol fe 5) 3 0 'hijk')
1321− 'hijk'
1396+```
1397+> `@t`(~(rol fe 5) 3 0 'hijk')
1398+'hijk'
13221399
1323− > `@t`(~(rol fe 5) 3 1 'hijk')
1324− 'khij'
1400+> `@t`(~(rol fe 5) 3 1 'hijk')
1401+'khij'
13251402
1326− > `@t`(~(rol fe 5) 3 2 'hijk')
1327− 'jkhi'
1403+> `@t`(~(rol fe 5) 3 2 'hijk')
1404+'jkhi'
13281405```
13291406
13301407---
13311408
1332−### `++sit:fe`
1409+### `++sum:fe`
13331410
1334−Enforce modulo
1411+Sum
13351412
1336−Produces an atom in the current modular block representation.
1413+Sums two numbers in this modular field.
13371414
13381415#### Accepts
13391416
1340−`a` is a `bloq`.
1417+`a` is a `bloq` (and is the sample of the parent core).
13411418
13421419`b` is an atom.
13431420
1421+`c` is an atom.
1422+
13441423#### Produces
13451424
13461425An atom.
@@ -1348,62 +1427,51 @@ An atom.
13481427#### Source
13491428
13501429```hoon
1351− ++ sit |=(b=@ (end a 1 b))
1430+++ sum |=([b=@ c=@] (sit (add b c)))
13521431```
13531432
13541433#### Examples
13551434
13561435```
1357− > (~(sit fe 3) 255)
1358− 255
1359−
1360− > (~(sit fe 3) 256)
1361− 0
1362−
1363− > (~(sit fe 3) 257)
1364− 1
1365−
1366− > (~(sit fe 2) 257)
1367− 1
1368−
1369− > (~(sit fe 2) 10.000)
1370− 0
1371−
1372− > (~(sit fe 2) 100)
1373− 4
1374−
1375− > (~(sit fe 2) 19)
1376− 3
1377−
1378− > (~(sit fe 2) 17)
1379− 1
1436+> (~(sum fe 3) 10 250)
1437+4
1438+```
13801439
1381− > (~(sit fe 0) 17)
1382− 1
1440+```
1441+> (~(sum fe 0) 0 1)
1442+1
1443+> (~(sum fe 0) 0 2)
1444+0
1445+```
13831446
1384− > (~(sit fe 0) 0)
1385− 0
1447+```
1448+> (~(sum fe 2) 14 2)
1449+0
1450+> (~(sum fe 2) 14 3)
1451+1
1452+```
13861453
1387− > (~(sit fe 0) 1)
1388− 1
1454+```
1455+> (~(sum fe 4) 10.000 256)
1456+10.256
1457+> (~(sum fe 4) 10.000 100.000)
1458+44.464
13891459```
13901460
13911461---
13921462
1393−### `++sum:fe`
1463+### `++sit:fe`
13941464
1395−Sum
1465+Enforce modulo
13961466
1397−Sums two numbers in this modular field.
1467+Produces an atom in the current modular block representation.
13981468
13991469#### Accepts
14001470
1401−`a` is a `bloq`.
1471+`a` is a `bloq` (and is the sample of the parent core).
14021472
14031473`b` is an atom.
14041474
1405−`c` is an atom.
1406−
14071475#### Produces
14081476
14091477An atom.
@@ -1411,32 +1479,40 @@ An atom.
14111479#### Source
14121480
14131481```hoon
1414− ++ sum |=([b=@ c=@] (sit (add b c)))
1482+++ sit |=(b=@ (end a b))
14151483```
14161484
14171485#### Examples
14181486
14191487```
1420− > (~(sum fe 3) 10 250)
1421− 4
1422−
1423− > (~(sum fe 0) 0 1)
1424− 1
1425−
1426− > (~(sum fe 0) 0 2)
1427− 0
1428−
1429− > (~(sum fe 2) 14 2)
1430− 0
1431−
1432− > (~(sum fe 2) 14 3)
1433− 1
1488+> (~(sit fe 3) 255)
1489+255
1490+> (~(sit fe 3) 256)
1491+0
1492+> (~(sit fe 3) 257)
1493+1
1494+```
14341495
1435− > (~(sum fe 4) 10.000 256)
1436− 10.256
1496+```
1497+> (~(sit fe 2) 257)
1498+1
1499+> (~(sit fe 2) 10.000)
1500+0
1501+> (~(sit fe 2) 100)
1502+4
1503+> (~(sit fe 2) 19)
1504+3
1505+> (~(sit fe 2) 17)
1506+1
1507+```
14371508
1438− > (~(sum fe 4) 10.000 100.000)
1439− 44.464
1509+```
1510+> (~(sit fe 0) 17)
1511+1
1512+> (~(sit fe 0) 0)
1513+0
1514+> (~(sit fe 0) 1)
1515+1
14401516```
14411517
14421518---