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:
@@ -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)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user