Zero-arg (app f) rejected at parse #12

Closed
opened 2026-05-20 13:21:57 +02:00 by Brummel · 0 comments
Owner

The Form-A parser refuses an application with an empty argument list, so a nullary call has no surface form. Surfaced by the mut-local fieldtest (F3) AND independently re-confirmed by the loop/recur fieldtest (2026-05-18, finding spec_gap): the maximally-natural infinite-event-loop shape is a niladic run_forever : fn() -> Int called (app run_forever), which dies at parse before reaching loop/recur semantics. Two independent fieldtests hitting the same gap raises the priority signal.

Decide: accept (app f) as the nullary-call surface, or ratify in DESIGN.md that nullary functions are expressed differently (and say how). DESIGN.md's Term::App args:[Term...] states no minimum, so the surface "expected at least one argument" rule is unbacked by spec — a genuine design fork, deliberately NOT auto-ratified under autonomous orchestration. Not a blocker; no current corpus program needs it, but an LLM author reaches for it.

context: docs/specs/2026-05-15-fieldtest-mut-local.md finding F3; docs/specs/2026-05-18-fieldtest-loop-recur.md spec_gap.

The Form-A parser refuses an application with an empty argument list, so a nullary call has no surface form. Surfaced by the mut-local fieldtest (F3) AND **independently re-confirmed by the loop/recur fieldtest** (2026-05-18, finding spec_gap): the maximally-natural infinite-event-loop shape is a niladic `run_forever : fn() -> Int` called `(app run_forever)`, which dies at parse before reaching loop/recur semantics. Two independent fieldtests hitting the same gap raises the priority signal. Decide: accept `(app f)` as the nullary-call surface, or ratify in DESIGN.md that nullary functions are expressed differently (and say how). DESIGN.md's `Term::App` `args:[Term...]` states no minimum, so the surface "expected at least one argument" rule is unbacked by spec — a genuine design fork, deliberately NOT auto-ratified under autonomous orchestration. Not a blocker; no current corpus program needs it, but an LLM author reaches for it. **context:** `docs/specs/2026-05-15-fieldtest-mut-local.md` finding F3; `docs/specs/2026-05-18-fieldtest-loop-recur.md` spec_gap.
Brummel added the bug label 2026-05-20 15:29:34 +02:00
Sign in to join this conversation.