@@ -1,14 +1,18 @@
11+++
2−title = "Glossary"
2+title = "Arvo Glossary"
33weight = 3
44template = "doc.html"
55+++
6+
67Urbit is renowned for its exotic terminology. Here's a simple overview
78from the strange words within.
89
910As Dijkstra put it: "The purpose of abstraction is not to be vague, but
1011to create a new semantic level in which one can be absolutely precise."
1112
13+This glossary only covers terms the Arvo side of the project. You can find the
14+Azimuth glossary [here](../azimuth-glossary)
15+
1216### application
1317
1418Also known as an “app,” an _application_ is a Hoon program that can hold state.
@@ -23,14 +27,14 @@ enclosing [core](#core) itself as the subject.
2327There are two kinds of arms: _dry_ and _wet_. Most arms are
2428dry.
2529
26−##### dry
30+#### dry
2731
2832 normal, `++`, polymorphic by means of _variance_
2933
3034 For a dry arm, we ask: is the new payload compatible with the old
3135 payload (against which the core was compiled)?
3236
33−##### wet
37+#### wet
3438
3539 unusual, `+-`, polymorphic by means of _genericity_
3640
@@ -67,7 +71,7 @@ More in-depth information on Arvo can be found
6771
6872Below are Arvo modules, which are called "vanes".
6973
70−##### Ames
74+#### Ames
7175
7276 The networking vane. Ames handles all things UDP. Here live the protocols for
7377 discovering and interacting with other urbits. It’s also the name for the Urbit
@@ -78,7 +82,7 @@ Below are Arvo modules, which are called "vanes".
7882 More in-depth information on Ames can be found
7983 [`here`](@/docs/learn/arvo/ames.md).
8084
81−##### Behn
85+#### Behn
8286
8387 The timing vane. Behn allows for applications to schedule events, which are
8488 managed in a simple priority queue. For example, Clay, the Urbit filesystem,
@@ -87,7 +91,7 @@ Below are Arvo modules, which are called "vanes".
8791
8892 Behn is located in `/home/sys/vane/behn.hoon` within your urbit.
8993
90−##### Clay
94+#### Clay
9195
9296 The filesystem and typed revision-control vane. Think of Clay as a
9397 continuously synced git. It handles file-change events and maps them from Urbit
@@ -103,7 +107,7 @@ Below are Arvo modules, which are called "vanes".
103107 of the architecture can be found
104108 [`here`](@/docs/learn/arvo/clay.md).
105109
106−##### Dill
110+#### Dill
107111
108112 The terminal-driver vane. You run your urbit in your Unix terminal, and
109113 Unix sends every event -- such as a keystroke or a change in the dimensions of
@@ -122,7 +126,7 @@ Below are Arvo modules, which are called "vanes".
122126 More in-depth information on Dill can be found
123127 [`here`](@/docs/learn/arvo/dill.md).
124128
125−##### Eyre
129+#### Eyre
126130
127131 The web-server vane. Anything HTTP-related lives here. Unix sends HTTP messages
128132 though to Eyre, and Eyre produces HTTP messages in response.
@@ -136,7 +140,7 @@ Below are Arvo modules, which are called "vanes".
136140 More in-depth information on Eyre can be found
137141 [`here`](@/docs/learn/arvo/eyre.md).
138142
139−##### Ford
143+#### Ford
140144
141145 The build-system vane. Ford is capable of sequencing generic asynchronous
142146 computations. Its uses include linking source files into programs, assembling
@@ -151,7 +155,7 @@ Below are Arvo modules, which are called "vanes".
151155 More in-depth information on Ford can be found
152156 [`here`](@/docs/learn/arvo/ford.md).
153157
154−##### Gall
158+#### Gall
155159
156160 The application-management vane. Userspace apps -- daemons, really -- are
157161 started, stopped, and sandboxed by Gall. Gall provides developers with a
@@ -176,11 +180,12 @@ optional constant.
176180
177181An atom type is _warm_ or _cold_ based on whether the constant exists.
178182
179−##### warm
183+
184+#### warm
180185
181186 If the constant is `~` (null), any atom is in the type.
182187
183−##### cold
188+#### cold
184189
185190 If the constant is `[~ atom]`, its only legal value is `atom`.
186191
@@ -296,11 +301,11 @@ code head the _battery_ and the data tail the _payload_. All code-data
296301structures in normal languages (functions, objects, modules, etc.)
297302translate to cores in Hoon.
298303
299−##### battery
304+#### battery
300305
301306 The code-containing head of a core.
302307
303−##### payload
308+#### payload
304309
305310 The data-containing tail of a core.
306311
@@ -362,11 +367,11 @@ in the core) with the argument, and then compute the arm.
362367
363368The payload of a gate has a shape of `[sample context]`.
364369
365−##### sample
370+#### sample
366371
367372 The argument tuple.
368373
369−##### context
374+#### context
370375
371376 The subject in which the gate was defined.
372377
@@ -424,7 +429,7 @@ such app that uses Hall.
424429
425430_More information on Hall can be found [here](@/docs/learn/arvo/hall.md)._
426431
427−##### circle
432+#### circle
428433
429434 A circle is the “audience” of your messages -- who can receive them. It can be
430435 thought of as a chat channel, but this is a little too narrow. More
@@ -447,7 +452,7 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your urbit.
447452
448453_More information can be found in the [hoon](@/docs/learn/hoon/_index.md) section._
449454
450−##### Mint
455+#### Mint
451456
452457 _Mint_ is the Hoon compiler function. Mint takes the subject type and the
453458 expression source (a [hoon](#a-hoon), for example) and produces the product
@@ -549,12 +554,12 @@ head-first for either a face named "foo" or a core with an arm of
549554"foo". If a face is found, the result is a leg, if a core is
550555found, the result is the product of the arm.
551556
552−##### leg
557+#### leg
553558
554559 a subexpression, or subtree of the
555560 [subject](#nock-subject).
556561
557−##### wing
562+#### wing
558563
559564 a search path into the subject, composed of
560565 limbs. Search occurs from right to left (`a.b` means `b` within `a`).
@@ -574,28 +579,28 @@ In [Nock](#nock) and [Hoon](#hoon), a _noun_ is an atom or a cell.
574579Nock is a Turing-complete, non-lambda combinator interpreter. It's
575580Urbit's low-level programming language. Nock is functional and typeless.
576581
577−##### noun
582+#### noun
578583
579584 an _atom_ or a _cell_.
580585
581−##### atom
586+#### atom
582587
583588 any natural number, including zero.
584589
585−##### cell
590+#### cell
586591
587592 any ordered pair of nouns.
588593
589594
590−##### subject
595+#### subject
591596
592597 a noun - the data against which a _formula_ is evaluated.
593598
594−##### formula
599+#### formula
595600
596601 a noun - a function at the nock level.
597602
598−##### product
603+#### product
599604
600605 a noun - the result of evaluating a formula against a subject.
601606
@@ -676,7 +681,7 @@ whose number is its bottom half. So the planet `~firbyr-napbes`,
676681`48.879`, whose parent is `~mun`, `0xef`, `239`. The galaxy at the address of
677682`0` is `~zod`.
678683
679−##### pier
684+#### pier
680685
681686 A ship's _pier_ is its Unix directory. For planets, the name of the pier is
682687 usually the planet name.
@@ -691,7 +696,7 @@ validate untrusted network data.
691696
692697Here's some common structure terminology:
693698
694−##### bunt
699+#### bunt
695700
696701 A bunt is the default value of a [structure](#structure). It's also a verb;
697702 to _bunt_ a structure is to produce the bunt of that structure. For example,
@@ -705,7 +710,7 @@ Here's some common structure terminology:
705710 ''
706711 ```
707712
708−##### icon: The type of the mold's range
713+#### icon: The type of the mold's range
709714
710715_See [mold hoons](/docs/reference/hoon-expressions/rune/buc/)._
711716
@@ -725,7 +730,7 @@ a [`hoon`](#a-hoon).
725730
726731Runes have two syntactic forms, _tall_ and _flat_:
727732
728−##### tall
733+#### tall
729734
730735 multiple lines, no parentheses, two or more spaces between tokens
731736
@@ -736,7 +741,7 @@ Runes have two syntactic forms, _tall_ and _flat_:
736741 4
737742 ```
738743
739−##### flat
744+#### flat
740745
741746 one line, parentheses, one space between tokens
742747
@@ -797,7 +802,7 @@ All types are assembled out of base types defined in `++type`.
797802does type-inference on a program, it assembles complex types out
798803of the simpler built-in types.
799804
800−##### nest
805+#### nest
801806
802807 `nest` is an internal Hoon function on two types which performs a type
803808 compatibility test. `nest` produces yes if the