With ++span replaced by ++knot; also, recursion filter in ++tuck.

This commit is contained in:
C. Guy Yarvin 2015-12-26 04:37:06 -05:00
parent 63b0bb3b86
commit 2c1fbd3eb2
9 changed files with 102 additions and 98 deletions

View File

@ -23,12 +23,12 @@
%+ cork house-5 |= house-5 :: modern house with
+<(shells (~(run by shells) shell-4)) :: no settings
++ house-5 ::
$: stories/(map span story) :: conversations
$: stories/(map knot story) :: conversations
general/(set bone) :: meta-subscribe
outbox/(pair @ud (map @ud thought)) :: urbit outbox
folks/(map ship human) :: human identities
shells/(map bone shell) :: interaction state
log/(map span @ud) :: logged to clay
log/(map knot @ud) :: logged to clay
nik/(map (set partner) char) :: bound station glyphs
nak/(jug char (set partner)) :: station glyph lookup
== ::
@ -49,15 +49,15 @@
== ::
++ shell :: console session
$: her/ship :: client identity
man/span :: mailbox
man/knot :: mailbox
count/@ud :: messages shown
say/sole-share :: console state
active/(unit (set partner)) :: active targets
passive/(set partner) :: passive targets
owners/register :: presence mirror
harbor/(map span (pair posture cord)) :: stations mirror
harbor/(map knot (pair posture cord)) :: stations mirror
system/cabal :: config mirror
settings/(set span) :: frontend settings
settings/(set knot) :: frontend settings
== ::
++ shell-4 (cork shell |=(shell +<(|8 &9.+<))) :: missing settings
++ river (pair point point) :: stream definition
@ -82,8 +82,8 @@
{$quit $~} ::
== ::
++ weir :: parsed wire
$% {$repeat p/@ud q/@p r/span} ::
{$friend p/span q/station} ::
$% {$repeat p/@ud q/@p r/knot} ::
{$friend p/knot q/station} ::
== ::
++ work :: interface action
$% {$number p/$@(@ud {@u @ud})} :: relative/absolute
@ -95,16 +95,16 @@
{$leave p/where} ::
{$say p/(list speech)} ::
{$eval p/cord q/twig} ::
{$invite p/span q/(list partner)} :: whitelist add
{$banish p/span q/(list partner)} :: blacklist add
{$block p/span q/(list partner)} :: blacklist add
{$author p/span q/(list partner)} :: whitelist add
{$invite p/knot q/(list partner)} :: whitelist add
{$banish p/knot q/(list partner)} :: blacklist add
{$block p/knot q/(list partner)} :: blacklist add
{$author p/knot q/(list partner)} :: whitelist add
{$nick p/(unit ship) q/(unit cord)} ::
{$set p/span} ::
{$unset p/span} ::
{$set p/knot} ::
{$unset p/knot} ::
{$target p/where q/(unit work)} :: set active targets
:: {$destroy p/span} ::
{$create p/posture q/span r/cord} ::
:: {$destroy p/knot} ::
{$create p/posture q/knot r/cord} ::
{$probe p/station} ::
== ::
++ where (set partner) :: non-empty audience
@ -401,9 +401,9 @@
++ sh-repo-house-diff
|= {one/shelf two/shelf}
=| $= ret
$: old/(list (pair span (pair posture cord)))
new/(list (pair span (pair posture cord)))
cha/(list (pair span (pair posture cord)))
$: old/(list (pair knot (pair posture cord)))
new/(list (pair knot (pair posture cord)))
cha/(list (pair knot (pair posture cord)))
==
^+ ret
=. ret
@ -655,7 +655,7 @@
(sh-repo-config-show "" loc.laz loc.bal)
::
++ sh-repo-house
|= awl/(map span (pair posture cord))
|= awl/(map knot (pair posture cord))
^+ +>
=+ dif=(sh-repo-house-diff harbor.she awl)
=. harbor.she awl
@ -995,27 +995,27 @@
(sh-note:(set-glyph cha u.pan) "bound {<cha>} {<u.pan>}")
::
++ invite :: %invite
|= {nom/span tal/(list partner)}
|= {nom/knot tal/(list partner)}
^+ ..sh-work
!!
::
++ block :: %block
|= {nom/span tal/(list partner)}
|= {nom/knot tal/(list partner)}
^+ ..sh-work
!!
::
++ author :: %author
|= {nom/span tal/(list partner)}
|= {nom/knot tal/(list partner)}
^+ ..sh-work
!!
::
++ banish :: %banish
|= {nom/span tal/(list partner)}
|= {nom/knot tal/(list partner)}
^+ ..sh-work
!!
::
++ create :: %create
|= {por/posture nom/span txt/cord}
|= {por/posture nom/knot txt/cord}
^+ ..sh-work
?: (~(has in stories) nom)
(sh-lame "{(trip nom)}: already exists")
@ -1028,7 +1028,7 @@
(join [[%& our.hid nom] ~ ~])
::
++ reverse-folks
|= nym/span
|= nym/knot
^- (list ship)
%+ murn (~(tap by folks))
|= {p/ship q/human}
@ -1066,19 +1066,19 @@
==
::
++ wo-set :: %set
|= seg/span
|= seg/knot
^+ ..sh-work
?~ seg
%+ sh-fact %mor
%+ turn (~(tap in settings.she))
|= s/span
|= s/knot
[%txt (trip s)]
%= ..sh-work
settings.she (~(put in settings.she) seg)
==
::
++ unset :: %unset
|= neg/span
|= neg/knot
^+ ..sh-work
%= ..sh-work
settings.she (~(del in settings.she) neg)
@ -1246,9 +1246,9 @@
%+ ra-emit ost.hid
:+ %diff %talk-report
:- %house
%- ~(gas in *(map span (pair posture cord)))
%- ~(gas in *(map knot (pair posture cord)))
%+ turn (~(tap by stories))
|=({a/span b/story} [a p.cordon.shape.b caption.shape.b])
|=({a/knot b/story} [a p.cordon.shape.b caption.shape.b])
::
++ ra-homes :: update partners
=+ gel=general
@ -1283,7 +1283,7 @@
==
::
++ ra-config :: configure story
|= {man/span con/config}
|= {man/knot con/config}
^+ +>
=+ :- neu=(~(has by stories) man)
pur=(fall (~(get by stories) man) *story)
@ -1291,7 +1291,7 @@
?:(neu +>.$ ra-homes)
::
++ ra-know :: story monad
|= man/span
|= man/knot
|* fun/$+(_pa _+>)
^+ +>+>
=+ pur=(~(get by stories) man)
@ -1301,22 +1301,22 @@
(fun ~(. pa man u.pur))
::
++ ra-diff-talk-report :: subscription update
|= {man/span cuz/station rad/report}
|= {man/knot cuz/station rad/report}
%- (ra-know man) |= par/_pa =< pa-abet
(pa-diff-talk-report:par cuz rad)
::
++ ra-quit :: subscription quit
|= {man/span cuz/station}
|= {man/knot cuz/station}
%- (ra-know man) |= par/_pa =< pa-abet
(pa-quit:par %& cuz)
::
++ ra-retry :: subscription resend
|= {man/span cuz/station}
|= {man/knot cuz/station}
%- (ra-know man) |= par/_pa =< pa-abet
(pa-acquire:par [%& cuz]~)
::
++ ra-coup-repeat ::
|= {{num/@ud her/@p man/span} saw/(unit tang)}
|= {{num/@ud her/@p man/knot} saw/(unit tang)}
(ra-repeat num [%& her man] saw)
::
++ ra-repeat :: remove from outbox
@ -1354,7 +1354,7 @@
++ ra-console :: console subscribe
|= {her/ship pax/path}
^+ +>
=+ man=`span`?~(pax (main her) ?>(?=($~ t.pax) i.pax))
=+ man=`knot`?~(pax (main her) ?>(?=($~ t.pax) i.pax))
=+ ^= she ^- shell
[her man 0 *sole-share ~ [[%& our.hid man] ~ ~] [~ ~] ~ *cabal ~]
sh-abet:~(sh-peer sh ~ she)
@ -1432,7 +1432,7 @@
==
::
++ ra-record :: add to story
|= {man/span gam/telegram}
|= {man/knot gam/telegram}
%- (ra-know man) |= par/_pa =< pa-abet
(pa-learn:par gam)
::
@ -1449,7 +1449,7 @@
+>(p.outbox +(p.outbox), q.outbox (~(put by q.outbox) p.outbox tip))
::
++ pa :: story core
|_ $: man/span
|_ $: man/knot
story
==
++ pa-abet
@ -1766,7 +1766,7 @@
--
::
++ sn :: station render core
|_ {man/span one/station}
|_ {man/knot one/station}
++ sn-best :: best to show
|= two/station
^- ?
@ -1828,7 +1828,7 @@
--
::
++ ta :: partner core
|_ {man/span one/partner}
|_ {man/knot one/partner}
++ ta-beat :: more relevant
|= two/partner ^- ?
?- -.one
@ -1874,7 +1874,7 @@
--
::
++ te :: audience renderer
|_ {man/span lix/(set partner)}
|_ {man/knot lix/(set partner)}
++ te-best ^- (unit partner)
?~ lix ~
:- ~
@ -1931,7 +1931,7 @@
--
::
++ tr :: telegram renderer
|_ $: man/span
|_ $: man/knot
nob/?
who/ship
sen/serial
@ -2020,7 +2020,7 @@
=- (swag [(sub (max 64 (lent -)) 64) 64] -)
^- tape
=< ?~(-.hok (reel p.hok .) +:(scow %if p.hok))
|=({a/span b/tape} ?~(b (trip a) (welp b '.' (trip a))))
|=({a/knot b/tape} ?~(b (trip a) (welp b '.' (trip a))))
::
$lin
=+ txt=(trip q.sep)
@ -2070,14 +2070,14 @@
|= {way/wire rad/report}
^- (quip move +>)
=^ mos +>.$
%+ etch-friend way |= {man/span cuz/station}
%+ etch-friend way |= {man/knot cuz/station}
ra-abet:(ra-diff-talk-report:ra man cuz rad)
=^ mow +>.$ log-all-to-file
[(welp mos mow) +>.$]
::
++ coup-repeat ::
|= {way/wire saw/(unit tang)}
%+ etch-repeat [%repeat way] |= {num/@ud src/@p man/span}
%+ etch-repeat [%repeat way] |= {num/@ud src/@p man/knot}
ra-abet:(ra-coup-repeat:ra [num src man] saw)
::
++ etch :: parse wire
@ -2094,12 +2094,12 @@
==
::
++ etch-friend ::
|= {way/wire fun/$+({man/span cuz/station} {(list move) _.})}
|= {way/wire fun/$+({man/knot cuz/station} {(list move) _.})}
=+ wer=(etch way)
?>(?=($friend -.wer) (fun p.wer q.wer))
::
++ etch-repeat ::
|= {way/wire fun/$+({num/@ud src/@p man/span} {(list move) _.})}
|= {way/wire fun/$+({num/@ud src/@p man/knot} {(list move) _.})}
=+ wer=(etch way)
?>(?=($repeat -.wer) (fun p.wer q.wer r.wer))
::
@ -2107,14 +2107,14 @@
|= {way/wire saw/(unit tang)}
^- (quip move +>)
?~ saw [~ +>]
%+ etch-friend [%friend way] |= {man/span cuz/station}
%+ etch-friend [%friend way] |= {man/knot cuz/station}
=. u.saw [>%reap-friend-fail man cuz< u.saw]
%- (slog (flop u.saw))
ra-abet:(ra-quit:ra man cuz)
::
++ quit-friend ::
|= way/wire
%+ etch-friend [%friend way] |= {man/span cuz/station}
%+ etch-friend [%friend way] |= {man/knot cuz/station}
ra-abet:(ra-retry:ra man cuz)
::
++ pull ::
@ -2129,17 +2129,17 @@
?: & [~ .] :: XXX!!!!
:_ %_ .
log %- ~(urn by log)
|=({man/span len/@ud} count:(~(got by stories) man))
|=({man/knot len/@ud} count:(~(got by stories) man))
==
%+ murn (~(tap by log))
|= {man/span len/@ud}
|= {man/knot len/@ud}
^- (unit move)
?: (gte len count:(~(got by stories) man))
~
`(log-to-file man)
::
++ log-to-file
|= man/span
|= man/knot
^- move
=+ ^- paf/path
=+ day=(year %*(. (yore now.hid) +.t +:*tarp))
@ -2149,14 +2149,14 @@
[ost.hid %info /jamfile our.hid (foal paf [%talk-telegrams !>(-)])]
::
++ poke-save
|= man/span
|= man/knot
^- (quip move +>)
=+ paf=/(scot %p our.hid)/home/(scot %da now.hid)/talk/[man]/talk-telegrams
=+ grams:(~(got by stories) man)
[[ost.hid %info /jamfile our.hid (foal paf [%talk-telegrams !>(-)])]~ +>.$]
::
++ poke-load
|= man/span
|= man/knot
=+ ^= grams
%- (hard (list telegram))
.^ %cx
@ -2166,7 +2166,7 @@
[~ +>.$(stories (~(put by stories) man toy(grams grams, count (lent grams))))]
::
++ poke-log
|= man/span
|= man/knot
~& %poke-log
^- (quip move +>)
@ -2174,7 +2174,7 @@
+>.$(log (~(put by log) man count:(~(got by stories) man)))
::
++ poke-unlog
|= man/span
|= man/knot
^- (quip move +>)
:- ~
+>.$(log (~(del by log) man))
@ -2188,7 +2188,7 @@
?- -.u.old
$5 [~ ..prep(+<+ u.old)]
$4 =< ^$(-.u.old %5, shells.u.old (~(run by shells.u.old) .))
|=(shell-4 `shell`+<(system [system settings=*(set span)]))
|=(shell-4 `shell`+<(system [system settings=*(set knot)]))
$3 =< ^$(-.u.old %4, stories.u.old (~(run by stories.u.old) .))
|=(story-3 `story`+<(cabalers [cabalers glyphers=*(set bone)]))
==

View File

@ -527,7 +527,7 @@
:: definitions are themselves `%hoon` files.
::
:: For the other files, we make a `%tabl` compound ford request to convert
:: the data for the new file to the the mark indicated by the last span in
:: the data for the new file to the the mark indicated by the last knot in
:: the path.
::
:: For diffs, we make a `%tabl` compound ford request to apply the diff to
@ -1663,8 +1663,8 @@
[[~ ?~(us *lobe u.us)] descendants]
|=({{path lobe} @uvI} (shax (jam +<)))
us
^- (map span $~)
%- mo ^- (list (pair span $~))
^- (map knot $~)
%- mo ^- (list (pair knot $~))
%+ turn descendants
|= {paf/path lob/lobe}
[?>(?=(^ paf) i.paf) ~]

View File

@ -53,7 +53,7 @@
++ ixor @t :: oryx hash
++ whir $@ $~ :: wire subset
$% {$at p/hole q/whir} :: authenticated
{$ay p/span:ship q/span:@uvH $~} :: remote duct
{$ay p/knot:ship q/knot:@uvH $~} :: remote duct
{$ha p/path:beak} :: GET request
{$he p/whir} :: HEAD request
{$hi p/mark $~} :: outbound HTTP
@ -62,7 +62,7 @@
{$ow p/ixor $~} :: dying view
{$on $~} :: dependency
== ::
++ whir-of {p/span:ship q/term r/wire} :: path in dock
++ whir-of {p/knot:ship q/term r/wire} :: path in dock
-- ::
|% :: models
++ bolo :: eyre state
@ -460,7 +460,7 @@
;= ;h1: Please log in
;p.ship
;div.sig: ~
;span#ship(contenteditable "");
;knot#ship(contenteditable "");
==
;input#pass(type "password");
;h2.advice: (Your login code has been printed to your console.)
@ -499,7 +499,7 @@
::
++ logout-page
%+ titl 'Log out'
;= ;h1: Goodbye ~;{span#ship}.
;= ;h1: Goodbye ~;{knot#ship}.
;button#act(onclick "urb.away()"): Log out
;pre:code#err;
;script@"/~/at/~/auth.js";
@ -1282,7 +1282,7 @@
{$| @} (cat 3 '; Domain=' (rsh 3 1 (scot %if p.r.hat)))
{$& $org $urbit *} '; Domain=.urbit.org'
{$& @ @ *} =- (rap 3 "; Domain={-}{i.p.r.hat ~}")
(turn (flop `path`t.p.r.hat) |=(a/span (cat 3 a '.')))
(turn (flop `path`t.p.r.hat) |=(a/knot (cat 3 a '.')))
{$& *} '' :: XX security?
==

View File

@ -146,10 +146,10 @@
(~(gas by one) (~(tap by two) ~)) :: XX ugh
::
++ lark :: filter arch names
|= {wox/$+(span (unit @)) arc/arch}
^- (map @ span)
%- ~(gas by *(map @ span))
=| rac/(list (pair @ span))
|= {wox/$+(knot (unit @)) arc/arch}
^- (map @ knot)
%- ~(gas by *(map @ knot))
=| rac/(list (pair @ knot))
|- ^+ rac
?~ dir.arc rac
=. rac $(dir.arc l.dir.arc, rac $(dir.arc r.dir.arc))
@ -487,10 +487,10 @@
==
::
++ some-in-map
|* fun/(burg span (unit))
|* fun/(burg knot (unit))
=+ res=_(need [?+(-.q !! $0 q.q)]:*fun)
=+ marv=(map span res)
|= {cof/cafe sud/(map span $~)} ^- (bolt marv)
=+ marv=(map knot res)
|= {cof/cafe sud/(map knot $~)} ^- (bolt marv)
?~ sud (flue cof)
%. [cof sud]
;~ cope
@ -502,7 +502,7 @@
(flux (lift |*(* [dir +<])))
==
%- flux
|= {lam/marv ram/marv nod/(unit {span res})}
|= {lam/marv ram/marv nod/(unit {knot res})}
?^(nod [u.nod lam ram] (~(uni by lam) ram))
==
++ dash :: process cache
@ -914,8 +914,8 @@
::
++ lads :: possible children
|= {cof/cafe bem/beam arg/heel}
^- (bolt (map span $~))
=| {res/(map span $~) new/(qeu beam)}
^- (bolt (map knot $~))
=| {res/(map knot $~) new/(qeu beam)}
=+ all=`(set beam)`[bem `~]
|^ %+ with (cope ?^(arg (flue cof) kids) return)
|=(_. (with (cope marks look) next))
@ -927,11 +927,11 @@
::
++ return
%- flux
|=(a/(map span $~) done(res (~(uni by res) a)))
|=(a/(map knot $~) done(res (~(uni by res) a)))
::
++ next
|= _. => +<
^- (bolt (map span $~))
^- (bolt (map knot $~))
?^ s.bem
$(s.bem t.s.bem, arg [i.s.bem arg])
?: =(~ new) (fine cof res)
@ -942,7 +942,7 @@
::
++ kids
%^ lash cof bem
|= {cof/cafe dir/span}
|= {cof/cafe dir/knot}
%+ cope (lend cof bem(s [dir s.bem]))
(flux |=(a/arch ?~(dir.a ~ (some ~))))
::
@ -1053,7 +1053,7 @@
|=(ref/type ref)
::
++ lash :: filter at beam
|* {cof/cafe bem/beam fun/(burg span (unit))}
|* {cof/cafe bem/beam fun/(burg knot (unit))}
%+ cope (lend cof bem)
|=({cof/cafe arc/arch} ((some-in-map fun) cof dir.arc))
::
@ -1521,8 +1521,8 @@
|= {cof/cafe bax/vase doe/term hon/horn}
^- (bolt vase)
%+ cope (lash cof how (flux (slat doe)))
|= {cof/cafe yep/(map span @)}
=+ ^= poy ^- (list (pair span @))
|= {cof/cafe yep/(map knot @)}
=+ ^= poy ^- (list (pair knot @))
%+ sort (~(tap by yep) ~)
|=({{* a/@} {* b/@}} (lth a b))
%+ cope
@ -1543,7 +1543,7 @@
%+ cope
%+ cope (lads cof how ~)
%- some-in-map
|= {cof/cafe dir/span}
|= {cof/cafe dir/knot}
=+ nod=(chap(s.how [dir s.how]) cof bax hon)
?: ?=($2 -.q.nod)
(flue cof)

View File

@ -82,6 +82,7 @@
== ::
++ gate $+(* *) :: general gate
++ hair {p/@ud q/@ud} :: parsing trace
++ knot @ta :: ASCII text
++ like |* a/$+(* *) :: generic edge
|= b/_`*`[(hair) ~] ::
:- p=(hair -.b) ::
@ -122,7 +123,7 @@
?@ b ~ ::
[i=(-.a -.b) t=$(a +.a, b +.b)] ::
++ pass @ :: public key
++ path (list span) :: filesys location
++ path (list knot) :: filesys location
++ pint {p/{p/@ q/@} q/{p/@ q/@}} :: line+column range
++ pole |* a/$+(* *) :: nameless list
$@($~ {a (pole a)}) ::
@ -156,7 +157,6 @@
{p/a q/b r/c s/d} ::
++ ring @ :: private key
++ rule _|=(nail *edge) :: parsing rule
++ span @ta :: text-atom (ASCII)
++ spot {p/path q/pint} :: range in file
++ tang (list tank) :: bottom-first error
++ tank $% {$leaf p/tape} :: printing formats
@ -3649,7 +3649,7 @@
c
==
::
++ wack :: span format
++ wack :: knot format
|= a/@ta
^- @ta
=+ b=(rip 3 a)
@ -3661,7 +3661,7 @@
?: =('_' i.b) ['~' '-' $(b t.b)]
[i.b $(b t.b)]
::
++ wick :: span format
++ wick :: knot format
|= a/@
^- (unit @ta)
=+ b=(rip 3 a)
@ -8886,6 +8886,7 @@
{$fork *} (fork $(sut p.sut) $(sut q.sut))
{$hold *} $(sut repo)
==
=+ vil=*(set type)
|- ^- type
?: =(1 u.i.vit)
^$(vit t.vit)
@ -8901,7 +8902,10 @@
{$core *} ?>(=(3 now) (core $(sut p.sut, u.i.vit lat) q.sut))
{$cube *} $(sut q.sut)
{$face *} (face p.sut $(sut q.sut))
{$fork *} (fork $(sut p.sut) $(sut q.sut))
{$fork *} ?: (~(has in vil) sut)
%void
=> .(vil (~(put in vil) sut))
(fork $(sut p.sut) $(sut q.sut))
{$hold *} $(sut repo)
==
::

View File

@ -1512,13 +1512,13 @@
:: (mule |.((slam p.mud sam)))
:: ::
++ pack :: light path encoding
|= {a/term b/path} ^- span
|= {a/term b/path} ^- knot
%+ rap 3 :- (wack a)
(turn b |=(c/span (cat 3 '_' (wack c))))
(turn b |=(c/knot (cat 3 '_' (wack c))))
::
++ puck :: light path decoding
=+ fel=(most cab (sear wick urt:ab))
|=(a/span `(unit {p/term q/path})`(rush a fel))
|=(a/knot `(unit {p/term q/path})`(rush a fel))
::
++ saxo :: autocanon
|= who/ship
@ -2205,7 +2205,7 @@
{$for p/path q/horn} :: /, descend
{$hel p/@ud q/horn} :: /% propagate heel
{$hub p/horn} :: /@ list by @ud
{$man p/(map span horn)} :: /* hetero map
{$man p/(map knot horn)} :: /* hetero map
{$nap p/horn} :: /_ homo map
{$now p/horn} :: /& list by @da
{$saw p/twig q/horn} :: /; operate on

View File

@ -115,7 +115,7 @@
=. nam
?. =(1 (met 3 nam))
nam
=+ ^- zaz/(list {p/span $~})
=+ ^- zaz/(list {p/knot $~})
(skim van |=({a/term $~} =(nam (end 3 1 a))))
?> ?=({{@ $~} $~} zaz)
`term`p.i.zaz

View File

@ -26,7 +26,7 @@
$: pax/path ::
pot/term ::
== ::
++ kiln-unmount $@(term {span path}) ::
++ kiln-unmount $@(term {knot path}) ::
++ kiln-sync ::
$: syd/desk ::
her/ship ::

View File

@ -6,7 +6,7 @@
++ atlas (map ship status) :: presence map
++ bouquet (set flavor) :: complete aroma
++ command :: effect on party
$% {$design (pair span (unit config))} :: configure+destroy
$% {$design (pair knot (unit config))} :: configure+destroy
{$publish (list thought)} :: originate
{$review (list thought)} :: deliver
== ::
@ -44,7 +44,7 @@
== ::
++ presence ?($gone $hear $talk) :: status type
++ register (pair atlas (map partner atlas)) :: ping me, ping srcs
++ shelf (map span (pair posture cord)) :: ship shape
++ shelf (map knot (pair posture cord)) :: ship shape
++ report :: talk update
$% {$cabal cabal} :: config neighborhood
:: {$folder (list report)} :: multiple
@ -54,7 +54,7 @@
{$glyph (jug char (set partner))} :: relevant binding
== ::
++ speech :: narrative action
$% {$lan p/span q/@t} :: local announce
$% {$lan p/knot q/@t} :: local announce
{$exp p/@t} :: hoon line
{$non $~} :: no content (yo)
{$ext p/@tas q/*} :: extended action
@ -71,7 +71,7 @@
++ partner (each station passport) :: interlocutor
++ status (pair presence human) :: participant
++ statement (trel @da bouquet speech) :: when this
++ station (pair ship span) :: domestic flow
++ station (pair ship knot) :: domestic flow
++ telegram (pair ship thought) :: who which whom what
++ thought (trel serial audience statement) :: which whom what
++ torso :: attachment