@@ -1,7 +1,6 @@
11---
22navhome: /docs/
33navuptwo: true
4−next: true
54sort: 5
65title: Glossary
76---
@@ -30,14 +29,14 @@ classed by the number of bits in their address:
3029
3130Any ship can be called an "urbit."
3231
33−> You can find a longer-form summary here:
32+> You can find a longer-form summary here:
3433> [`urbit.org/posts/address-space/`](https://urbit.org/posts/address-space/).
35−
34+
3635An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
3736but it's easy to remember and say out loud. `~firbyr-napbes` is actually
38−just a 32-bit number (`3.237.967.392`, to be exact), like an IP address,
39−that we turn into a human-memorable string. The full name of this string
40−can be viewed by typing `our` in the Dojo, Urbit's shell. This is useful
37+just a 32-bit number (`3.237.967.392`, to be exact), like an IP address,
38+that we turn into a human-memorable string. The full name of this string
39+can be viewed by typing `our` in the Dojo, Urbit's shell. This is useful
4140when running a ship with a longer name, such as a *moon* or a *comet*.
4241
4342Technically, an urbit is a secure digital identity that you own and
@@ -124,7 +123,7 @@ An atom type is *warm* or *cold* based on whether the constant exists.
124123#### aura
125124
126125An *aura* is a soft atom type. It represents the structure of an
127−atom in a string beginning with `@`. An aura may represent print
126+atom in a string beginning with `@`. An aura may represent print
128127format or other semantics. Its constraints on the value of an
129128atom aren't enforced in any way.
130129
@@ -148,8 +147,8 @@ You can find the list of all auras [here](../../hoon/atom/sand/).
148147
149148#### core
150149
151−A _core_ is a [cell](#-nock-cell) of `[code data]`, where we call the
152−code head the _battery_ and the data tail the _payload_. All code-data
150+A _core_ is a [cell](#-nock-cell) of `[code data]`, where we call the
151+code head the _battery_ and the data tail the _payload_. All code-data
153152structures in normal languages (functions, objects, modules, etc.)
154153become _core_s in Hoon.
155154
@@ -158,24 +157,24 @@ become _core_s in Hoon.
158157
159158*See [basic types](../../hoon/basic)*.
160159
161−#### face
160+#### face
162161
163−A Hoon _face_ is a labeled subtree.
162+A Hoon _face_ is a labeled subtree.
164163
165164Hoon has no scope or symbol-table; there is only the subject. To
166165"declare" a "variable" is to construct a new subject:
167166`[name=value old-subject]`.
168167
169−A face is a type that wraps a named symbol (of [aura](#-aura)
168+A face is a type that wraps a named symbol (of [aura](#-aura)
170169`@tas`) around another type.
171170
172171*See [advanced types](../../hoon/advanced/#-face-aliases-and-bridges)*.
173172
174173#### gate
175174
176−A _gate_ is a [core](#-core) with one [arm](#-arm) -- Hoon's closest
175+A _gate_ is a [core](#-core) with one [arm](#-arm) -- Hoon's closest
177176analog to a function/lambda/closure. To call a gate on an argument,
178−replace the sample (at [tree address](../../hoon/limb/limb/) `+6`
177+replace the sample (at [tree address](../../hoon/limb/limb/) `+6`
179178in the core) with the argument, and then compute the arm.
180179
181180The payload of a gate has a shape of `[sample context]`.
@@ -184,33 +183,33 @@ The payload of a gate has a shape of `[sample context]`.
184183- <h6 id="-gate-context">context:</h6> the subject in which the gate was defined
185184
186185*See [basic types](../../hoon/basic/#-core-p-type-q-map-term-type),
187−[`%-` ("cenhep")](../../hoon/rune/cen/hep/) (the
186+[`%-` ("cenhep")](../../hoon/rune/cen/hep/) (the
188187[rune](#-rune) for calling a `gate`).*
189188
190189#### <h4 id="-a-hoon">hoon</h4>
191190
192−A [`hoon`](../../hoon/reference/) is the result of parsing a Hoon source
193−expression into an AST node. These AST nodes are nouns, like all
194−other Hoon data. Because every Hoon program is, in its entirety, a
195−single expression of Hoon, the result of parsing the whole thing
191+A [`hoon`](../../hoon/reference/) is the result of parsing a Hoon source
192+expression into an AST node. These AST nodes are nouns, like all
193+other Hoon data. Because every Hoon program is, in its entirety, a
194+single expression of Hoon, the result of parsing the whole thing
196195into an AST is a single `hoon`.
197196
198−A hoon is a tagged union of the form `[%tag data]`, where the tag
199−is a constant such as `%brts` (from the source [rune](#-rune) `|=`,
200−i.e. "bartis"), and is matched up with the appropriate type of data
201−(often more `hoon`s, from source subexpressions). For example, the
197+A hoon is a tagged union of the form `[%tag data]`, where the tag
198+is a constant such as `%brts` (from the source [rune](#-rune) `|=`,
199+i.e. "bartis"), and is matched up with the appropriate type of data
200+(often more `hoon`s, from source subexpressions). For example, the
202201expression `:-(2 17)`, once parsed into an AST, becomes the following:
203202
204203```
205204[%clhp p=[%sand p=%ud q=2] q=[%sand p=%ud q=17]]
206205```
207206
208−The `%clhp` is produced from the rune `:-` (i.e. "colhep"). The 2 and
209−17 have each been parsed as `%sand`-tagged hoons, which represent
210−atoms (in this case each with an aura of `%ud`, i.e. unsigned
207+The `%clhp` is produced from the rune `:-` (i.e. "colhep"). The 2 and
208+17 have each been parsed as `%sand`-tagged hoons, which represent
209+atoms (in this case each with an aura of `%ud`, i.e. unsigned
211210decimal).
212211
213−To parse Hoon source into a hoon AST, use `ream` on a `cord`
212+To parse Hoon source into a hoon AST, use `ream` on a `cord`
214213containing Hoon source. Try the following in [Dojo](../../using/shell):
215214
216215```
@@ -225,7 +224,7 @@ The result should be:
225224
226225#### limb
227226
228−A _limb_ is an attribute or variable reference.
227+A _limb_ is an attribute or variable reference.
229228
230229To resolve a *limb* named "foo", the subject is searched depth-first,
231230head-first for either a face named "foo" or a core with an arm of
@@ -247,10 +246,10 @@ A _loobean_ is a Hoon boolean. `0` (`%.y`) is *yes*, `1` (`%.n`) is *no*.
247246
248247#### mark
249248
250−A _mark_ is Urbit's version of a MIME type, if a MIME type was an
251−executable specification. The mark is just a label that's used as a path
252−to a local source file in the Arvo filesystem. This source file defines
253−a core that can mold untrusted data, diff and patch, convert to other
249+A _mark_ is Urbit's version of a MIME type, if a MIME type was an
250+executable specification. The mark is just a label that's used as a path
251+to a local source file in the Arvo filesystem. This source file defines
252+a core that can mold untrusted data, diff and patch, convert to other
254253marks, etc.
255254
256255If this sounds like magic, it isn't quite magic. There's no way
@@ -273,11 +272,11 @@ properties of the type of a compatible core). The default is `gold`
273272
274273#### mold
275274
276−A _mold_ is an idempotent [gate](#-gate) (function), accepting any noun,
275+A _mold_ is an idempotent [gate](#-gate) (function), accepting any noun,
277276and producing a range with a type, a set of nouns.
278277
279−Molds act as type constructor/validators in Hoon. An example: Arvo
280−[marks](#-marks) use Hoon's type system under the hood via molds to
278+Molds act as type constructor/validators in Hoon. An example: Arvo
279+[marks](#-marks) use Hoon's type system under the hood via molds to
281280validate untrusted network data.
282281
283282Here's some common mold terminology:
@@ -288,9 +287,9 @@ Here's some common mold terminology:
288287
289288*See [mold hoons](../../hoon/rune/buc/).*
290289
291−#### nest
290+#### nest
292291
293−`nest` is an internal Hoon function on two types which performs a type
292+`nest` is an internal Hoon function on two types which performs a type
294293compatibility test. `nest` produces yes if the
295294set of nouns in the second type is provably a subset of the first.
296295If `nest` produces no, the Hoon programmer will receive a `nest-fail`
@@ -301,12 +300,12 @@ error. This is one of the most commons errors in Hoon programming.
301300
302301#### rune
303302
304−A Hoon _rune_ is a pair of ASCII symbols used to begin a
303+A Hoon _rune_ is a pair of ASCII symbols used to begin a
305304[Hoon expression](#-a-hoon).
306305
307−For example, the rune [`?:`](../../hoon/rune/wut/col/) is
308−Hoon's most common conditional, a branch on a boolean test. The first
309−symbol in a rune represents a family of related runes. For example, the
306+For example, the rune [`?:`](../../hoon/rune/wut/col/) is
307+Hoon's most common conditional, a branch on a boolean test. The first
308+symbol in a rune represents a family of related runes. For example, the
310309[`?` family](../../hoon/rune/wut/) are all conditionals.
311310
312311The result of parsing a Hoon source expression—the rune, followed
@@ -336,32 +335,31 @@ Runes have two syntactic forms, _tall_ and _flat_:
336335 4
337336 ```
338337
339−Tall hoons can contain flat hoons, but not vice versa. All irregular
338+Tall hoons can contain flat hoons, but not vice versa. All irregular
340339forms are flat.
341340
342341*See [hoon concept](../../hoon/concepts/#-hoon),
343342[expressions](../../hoon/rune/), and [syntax](../../hoon/syntax/)*.
344343
345−#### slot
344+#### slot
346345
347346`slot` is the name for Hoon's tree addressing scheme.
348347
349348Every cell has a head and a tail, each of which may be either an atom or
350349a cell. Therefore every noun is a binary tree. `+1` or `.` resolves to
351350the whole cell (technically this would work against an atom as well).
352−The head of `+n` is `+2n`, the tail is `+(2n+1)`.
351+The head of `+n` is `+2n`, the tail is `+(2n+1)`.
353352
354353#### type
355354
356−A Hoon _type_ defines a set (finite or infinite) of nouns and ascribes
357−some semantics to it. There is no direct syntax for defining
355+A Hoon _type_ defines a set (finite or infinite) of nouns and ascribes
356+some semantics to it. There is no direct syntax for defining
358357types; they are always defined by inference (i.e., by
359358[`mint`](#-mint)), usually using a constructor ([`mold`](#-mold)).
360359
361−All types are assembled out of base types defined in `++type`.
362−(Look up `++ type` in hoon.hoon for examples.) When the compiler
363−does type-inference on a program, it assembles complex types out
360+All types are assembled out of base types defined in `++type`.
361+(Look up `++ type` in hoon.hoon for examples.) When the compiler
362+does type-inference on a program, it assembles complex types out
364363of the simpler built-in types.
365364
366365*See [basic types](../../hoon/basic/).*
367−