docs(examples): correct rbx_1 ctor-field qualification note

The field-test note on the `Window` ctor claimed that bare
`(con RawBuf (con Float))` in a user ADT ctor field gives a
type-mismatch and that "the only form that checks is the
fully-qualified `raw_buf.RawBuf`". Verified against the current
tool (release at HEAD), that claim is false in every form I could
construct:

- bare `(con RawBuf a)` (type-variable element) in a non-kernel
  module: checks ok
- bare `(con RawBuf (con Float))` (concrete element): checks ok
- a `(new RawBuf ...)` value stored via `term-ctor` into a
  bare-declared field: checks ok
- the full rbx_1 program with the field switched to bare RawBuf:
  checks ok

A ctor field is plain type position, and model 0007 §3
("kernel-module types are accessible bare in type position") already
covers it — the auto-import that makes bare `Series` work at a call
site equally makes bare `RawBuf` resolve in a user ctor field. The
only genuine constraint is that a ctor field carries no mode:
`(own (RawBuf a))` is a surface-parse-error, which model 0007 line
458 already documents.

So there is no qualification asymmetry to add to the ledger; the
ledger is correct as-is. The drift was in this checked-in comment
(a guessed rule recorded as fact), now rewritten to the verified
reality. The qualified spelling is kept in the code as the explicit
form. No ledger change.

closes #65
This commit is contained in:
2026-06-02 14:09:48 +02:00
parent a2808a6938
commit a35878154b
@@ -30,12 +30,13 @@
(module rbx_1_float_window_stats
; NOTE (field test): the ledger's §Series substrate form writes the
; storage field as `(own (RawBuf a))`. That does NOT parse here — `own`
; in a ctor field position is rejected (surface-parse-error). And the
; bare `(con RawBuf (con Float))` field gives a type-mismatch
; (expected RawBuf<Float>, got raw_buf.RawBuf<Float>). The only form
; that checks is the fully-qualified `raw_buf.RawBuf`. See findings.
; NOTE (field test): a ctor-field storage type carries no mode — the
; `(own (RawBuf a))` form does NOT parse (`own` in a ctor field is a
; surface-parse-error; modes live on fn params/ret only). The element
; type itself is plain type position, so both the kernel-auto-imported
; bare `(con RawBuf (con Float))` and the fully-qualified
; `(con raw_buf.RawBuf (con Float))` check — they denote the same type.
; (The qualified form is kept here as the explicit spelling.)
(data Window
(ctor W (con raw_buf.RawBuf (con Float)) (con Int)))