on master help sign in
Record the answers to review questions 24 to 45; list the spec rulings for @iko
bf65f8fClaude
docs/open-questions.md+20
@@ -66,6 +66,26 @@ Found while writing [prompts/milestone-2.md](prompts/milestone-2.md), checking i
66
66
6734. **Settled: constructors and equal noun literals.** On 2026-10-31, @iko said expressions with the same runtime representation count as equal, and cases that cannot be distinguished at runtime are rejected at compile time. Thus `|=%$` matches a case headed by `%$`, `%.y` or `~`: each is the noun 0. Cases with equal heads and overlapping payloads cannot coexist in a union.
6734. **Settled: constructors and equal noun literals.** On 2026-10-31, @iko said expressions with the same runtime representation count as equal, and cases that cannot be distinguished at runtime are rejected at compile time. Thus `|=%$` matches a case headed by `%$`, `%.y` or `~`: each is the noun 0. Cases with equal heads and overlapping payloads cannot coexist in a union.
68
68
69+## Review rulings waiting for @iko
70+
71+The [2026-11-02 review](reviews/2026-11-02-repo-review.md) raised these language and spec questions. Montelot answered them on 2026-11-02 as proposals. Each waits for @iko to confirm before it goes in [Decisions](spec/decisions.md) and the code changes.
72+
73+| # | Question | Proposed answer | Refs |
74+| --- | --- | --- | --- |
75+| [16](reviews/2026-11-02-questions.md) | Which auras may a term literal fit? Today `^- @tas %1.000` is accepted and `^- @ud %1.000` is rejected | Follow Hoon: `%1.000` is `@ud` and `%&` is `?` | A20 |
76+| [17](reviews/2026-11-02-questions.md) | May a name term fit `@t`, as `@tas` nests in `@t` in Hoon? | Yes | A20 |
77+| [18](reviews/2026-11-02-questions.md) | May a gate fit `*`? The prelude's `element` erases gates into `*` | Yes, and say in the spec that `*` may hold gates | A23 |
78+| [19](reviews/2026-11-02-questions.md) | Where are `[]` and `m()`, both decided errors, rejected? | In the parser, at the closer, with golden cases | A6, A100 |
79+| [20](reviews/2026-11-02-questions.md) | Is `[a=@ud [a=@t b=?]]` one record or two scopes? | One record: the duplicate `a` is an error | A30 |
80+| [21](reviews/2026-11-02-questions.md) | May `/% %foo` and `++ foo 1` share a name? | Yes: molds and values have separate namespaces | A25 |
81+| [22](reviews/2026-11-02-questions.md) | Is a `?-` arm that matches no remaining case a definite error? | Yes: "arm matches no case" | A15 |
82+| [23](reviews/2026-11-02-questions.md) | Should `(mop K V)` carry its comparator? | No, match Hoon | A55 |
83+| [24](reviews/2026-11-02-questions.md) | Should Hoon's `each` mold be renamed, since the prelude has the element gate `each`? | No, keep both | A64 |
84+| [25](reviews/2026-11-02-questions.md) | When are `eq` and the gate-free type-variable constraint built? | In milestone 2 | A98 |
85+| [26](reviews/2026-11-02-questions.md) | Which Hoon unions should the importer read? | `$%` with `%&`, `%\|` and `%0` tags now, then `each` and `json` as catalog entries | A50 |
86+| [27](reviews/2026-11-02-questions.md) | Should the `%jibb` mark keep dropping the final newline on a `%txt` round trip? | Keep it, like `%hoon` | A61 |
87+| [28](reviews/2026-11-02-questions.md) | Should the printer flatten `[a [b c]]` and print named molds by name, such as `theme`? | Yes | A136 |
88+
69## Grammar questions never put to the doc's author
89## Grammar questions never put to the doc's author
70
90
71In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
91In milestone 1 the parser met about thirty places where the doc could be read more than one way. Twelve went to @iko on 2026-10-30 and are rows of the Decisions tab. These were not asked. For each, the parser follows the reading below, and some are marked "(doc question)" in the library's notes. None changes what a valid program means, except where a reading makes something an error.
docs/reviews/2026-11-02-questions.md+24−22
@@ -123,6 +123,8 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
123
123
124## Language and spec rulings
124## Language and spec rulings
125
125
126+Montelot's answers to 16 to 28 are proposals. They are listed in [open-questions.md](../open-questions.md) until @iko confirms them; the code changes wait until then.
127+
126**16. Which auras may a term literal fit?** Today `^- @tas %1.000` and `^- @tas %&` are accepted and `^- @ud %1.000` is rejected, the opposite of Hoon. grammar.md:141 supports the code; grammar.md:29 and "Literals: exactly Hoon's" don't. (A20)
128**16. Which auras may a term literal fit?** Today `^- @tas %1.000` and `^- @tas %&` are accepted and `^- @ud %1.000` is rejected, the opposite of Hoon. grammar.md:141 supports the code; grammar.md:29 and "Literals: exactly Hoon's" don't. (A20)
127
129
128- a) Follow Hoon: a term literal fits its own aura family, so `%1.000` is `@ud` and `%&` is `?`.
130- a) Follow Hoon: a term literal fits its own aura family, so `%1.000` is `@ud` and `%&` is `?`.
@@ -184,14 +186,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
184- a) No, keep both.
186- a) No, keep both.
185- b) Yes.
187- b) Yes.
186
188
187−**Answer:** a
189+**Answer:** a *(chosen)*
188
190
189**25. When should `eq` and the gate-free type-variable constraint be built?** Both are decided, neither exists, and no doc tracks them. (A98)
191**25. When should `eq` and the gate-free type-variable constraint be built?** Both are decided, neither exists, and no doc tracks them. (A98)
190
192
191- a) In milestone 2.
193- a) In milestone 2.
192- b) Later, and list them as outstanding.
194- b) Later, and list them as outstanding.
193
195
194−**Answer:** a
196+**Answer:** a *(chosen)*
195
197
196**26. Which Hoon unions should the importer learn?** Today `$%` with `%&`, `%|` or `%0` tags, `(each a b)` and `json` all fail, though the spec's import table lists them. (A50)
198**26. Which Hoon unions should the importer learn?** Today `$%` with `%&`, `%|` or `%0` tags, `(each a b)` and `json` all fail, though the spec's import table lists them. (A50)
197
199
@@ -199,21 +201,21 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
199- b) Only the tags.
201- b) Only the tags.
200- c) Later.
202- c) Later.
201
203
202−**Answer:** a
204+**Answer:** a *(chosen)*
203
205
204**27. Should the `%jibb` mark keep dropping the final newline on a `%txt` round trip**, as `%hoon` does? (A61)
206**27. Should the `%jibb` mark keep dropping the final newline on a `%txt` round trip**, as `%hoon` does? (A61)
205
207
206- a) Keep it, like `%hoon`.
208- a) Keep it, like `%hoon`.
207- b) Preserve the newline, and change tools/ship's assertion.
209- b) Preserve the newline, and change tools/ship's assertion.
208
210
209−**Answer:** a
211+**Answer:** a *(chosen)*
210
212
211**28. Should the printer flatten `[a [b c]]` to `[a b c]` and print named molds by name**, such as `theme` and `item.todo`? (A136)
213**28. Should the printer flatten `[a [b c]]` to `[a b c]` and print named molds by name**, such as `theme` and `item.todo`? (A136)
212
214
213- a) Yes.
215- a) Yes.
214- b) No.
216- b) No.
215
217
216−**Answer:** a
218+**Answer:** a *(chosen)*
217
219
218## Tests and tooling
220## Tests and tooling
219
221
@@ -222,7 +224,7 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
222- a) Yes.
224- a) Yes.
223- b) No.
225- b) No.
224
226
225−**Answer:** a
227+**Answer:** a *(chosen)*
226
228
227**30. Should there be one `tools/check` command, and CI?** (A92, A96)
229**30. Should there be one `tools/check` command, and CI?** (A92, A96)
228
230
@@ -230,77 +232,77 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
230- b) `tools/check` now, CI at milestone 7 as planned.
232- b) `tools/check` now, CI at milestone 7 as planned.
231- c) Neither.
233- c) Neither.
232
234
233−**Answer:** b
235+**Answer:** a *(chosen)*
234
236
235**31. How should the 28 copies of `my-app` files under `tests/` be handled?** (A108, A109)
237**31. How should the 28 copies of `my-app` files under `tests/` be handled?** (A108, A109)
236
238
237- a) Map `my-app` into the `jibb-dev` desk outside `/tests` and read it directly, removing the copies.
239- a) Map `my-app` into the `jibb-dev` desk outside `/tests` and read it directly, removing the copies.
238- b) Keep the copies, and guard them all from one manifest.
240- b) Keep the copies, and guard them all from one manifest.
239
241
240−**Answer:** a
242+**Answer:** a *(chosen)*
241
243
242**32. Should the generated `tests/lib/jibb.hoon` (3,949 lines) stop being committed?** Assembly drops it and regenerates it anyway. (A83)
244**32. Should the generated `tests/lib/jibb.hoon` (3,949 lines) stop being committed?** Assembly drops it and regenerates it anyway. (A83)
243
245
244- a) Yes, and add it to .gitignore.
246- a) Yes, and add it to .gitignore.
245- b) No.
247- b) No.
246
248
247−**Answer:** a
249+**Answer:** a *(chosen)*
248
250
249**33. Should the importer's test fixtures (about 550 lines) move out of `jibb-import.hoon`**, which app desks vendor, into `tests/lib/jibb-import.hoon`? (A52)
251**33. Should the importer's test fixtures (about 550 lines) move out of `jibb-import.hoon`**, which app desks vendor, into `tests/lib/jibb-import.hoon`? (A52)
250
252
251- a) Yes.
253- a) Yes.
252- b) No.
254- b) No.
253
255
254−**Answer:** a
256+**Answer:** a *(chosen)*
255
257
256**34. Should the import-only fixtures move off `my-app`** (`sur/import-fixture.hoon`, `mar/label.hoon`, the Tlon probe) to a fixtures desk? (A113)
258**34. Should the import-only fixtures move off `my-app`** (`sur/import-fixture.hoon`, `mar/label.hoon`, the Tlon probe) to a fixtures desk? (A113)
257
259
258- a) Yes.
260- a) Yes.
259- b) No.
261- b) No.
260
262
261−**Answer:** a
263+**Answer:** a *(chosen)*
262
264
263**35. Should the five `tools/hoon` checks that exit 0 whatever they print become test arms?** (A91)
265**35. Should the five `tools/hoon` checks that exit 0 whatever they print become test arms?** (A91)
264
266
265- a) Yes.
267- a) Yes.
266- b) No.
268- b) No.
267
269
268−**Answer:** a
270+**Answer:** a *(chosen)*
269
271
270**36. Should type-checker golden cases keep their full token and tree outputs?** They are 73% of all parser golden lines. (A94)
272**36. Should type-checker golden cases keep their full token and tree outputs?** They are 73% of all parser golden lines. (A94)
271
273
272- a) Keep them: each stage's output is compared.
274- a) Keep them: each stage's output is compared.
273- b) Let type cases opt out.
275- b) Let type cases opt out.
274
276
275−**Answer:** a
277+**Answer:** a *(chosen)*
276
278
277**37. Should the tests keep calling internal library arms (137 of them)?** (A126)
279**37. Should the tests keep calling internal library arms (137 of them)?** (A126)
278
280
279- a) Keep them for now, and revisit after the checker core changes.
281- a) Keep them for now, and revisit after the checker core changes.
280- b) Move them behind a small public facade.
282- b) Move them behind a small public facade.
281
283
282−**Answer:** a
284+**Answer:** a *(chosen)*
283
285
284**38. Should `my-app` keep the failing buttons example and the doc theme's static font?** Milestone 4 will treat both as errors. (A112)
286**38. Should `my-app` keep the failing buttons example and the doc theme's static font?** Milestone 4 will treat both as errors. (A112)
285
287
286- a) Keep them through milestone 2, and list it as a milestone-4 open question.
288- a) Keep them through milestone 2, and list it as a milestone-4 open question.
287- b) Move the error example out now.
289- b) Move the error example out now.
288
290
289−**Answer:** a
291+**Answer:** a *(chosen)*
290
292
291**39. Should every vendored package keep going into every desk?** (A117)
293**39. Should every vendored package keep going into every desk?** (A117)
292
294
293- a) Yes, as designed.
295- a) Yes, as designed.
294- b) Make it per desk.
296- b) Make it per desk.
295
297
296−**Answer:** a
298+**Answer:** a *(chosen)*
297
299
298**40. Should `tools/hoon` get a `--no-debug` mode** for timings, with the docs' figures re-measured? Every eval runs with `!:`, which makes checker work 2.2 to 2.6 times slower. (A137)
300**40. Should `tools/hoon` get a `--no-debug` mode** for timings, with the docs' figures re-measured? Every eval runs with `!:`, which makes checker work 2.2 to 2.6 times slower. (A137)
299
301
300- a) Yes.
302- a) Yes.
301- b) No.
303- b) No.
302
304
303−**Answer:** a
305+**Answer:** a *(chosen)*
304
306
305## Docs and repository
307## Docs and repository
306
308
@@ -309,14 +311,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
309- a) Yes.
311- a) Yes.
310- b) Only fix the contradictions.
312- b) Only fix the contradictions.
311
313
312−**Answer:** a
314+**Answer:** a *(chosen)*
313
315
314**42. Until the Claude design doc is synced, which spec wins?** (A104)
316**42. Until the Claude design doc is synced, which spec wins?** (A104)
315
317
316- a) The repository copy, with a "synced" column in decisions.md.
318- a) The repository copy, with a "synced" column in decisions.md.
317- b) The Claude doc, as development.md says now.
319- b) The Claude doc, as development.md says now.
318
320
319−**Answer:** a
321+**Answer:** a *(chosen)*
320
322
321**43. Who syncs the Claude design doc with the repository's decisions?**
323**43. Who syncs the Claude design doc with the repository's decisions?**
322
324
@@ -324,14 +326,14 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
324- b) @iko.
326- b) @iko.
325- c) Leave it for now.
327- c) Leave it for now.
326
328
327−**Answer:** b
329+**Answer:** c *(chosen)*
328
330
329**44. Should open-questions.md hold only open questions**, with settled ones moved to decisions.md? (A103)
331**44. Should open-questions.md hold only open questions**, with settled ones moved to decisions.md? (A103)
330
332
331- a) Yes.
333- a) Yes.
332- b) No.
334- b) No.
333
335
334−**Answer:** a
336+**Answer:** a *(chosen)*
335
337
336**45. Which licence should the repository have?** It has none, and doesn't state the licences of `vendor/` or the Tlon fixtures. (A107)
338**45. Which licence should the repository have?** It has none, and doesn't state the licences of `vendor/` or the Tlon fixtures. (A107)
337
339
@@ -339,4 +341,4 @@ Questions 16 to 28 are language or spec rulings. Under the ground rules they are
339- b) Another licence.
341- b) Another licence.
340- c) None: keep it private.
342- c) None: keep it private.
341
343
342−**Answer:** a
344+**Answer:** a *(chosen)*