diff --git a/README.md b/README.md index 053a2ac..44c2d39 100644 --- a/README.md +++ b/README.md @@ -449,9 +449,10 @@ order.id: datatype integer: {digits(3)} prints text, not an integer order.id: datatype integer: "1{digits(2)}" is not one value; write one literal or one {float()}, {int()}, {seq()} or {calc()}, or read one ``` -A column whose format is one read of another record's column and nothing else — -`"score": "{/src.score}"`, or `"score": "{s.score}"` with `s` bound to `/src` — is that column: it takes the column's datatype and is null where the column is, and -a struct field tagged `src.score` is nil there. A `datatype` of its own types the +A column whose format is one read of a record's column and nothing else — +`"score": "{/src.score}"`, `"score": "{s.score}"` with `s` bound to `/src`, or `"a": "{p}"` +beside `{place as p}` in its own record — is that column: it takes the column's datatype and +is null where the column is, and a struct field tagged `src.score` is nil there. A `datatype` of its own types the column's values where they prove it, and one restating the datatype it takes is refused. Any other read renders the column's text, a null as `""`. diff --git a/docs/decisions.md b/docs/decisions.md index 2fec329..f3fa71c 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -350,9 +350,10 @@ value, a range check is one comparison, and `1{digits(2)}` is a second spelling 2026-09-15, Lilleman auf Larv. -`{/src.score}` renders exactly what `src.score` draws, and so does `{s.score}` where `s` is -bound to `/src`, so it takes that column's datatype and null rather than restating them, and a `datatype` restating the one it -takes is a second spelling. Any other `datatype` still types the values — the one way to +`{/src.score}` renders exactly what `src.score` draws, and so do `{s.score}` where `s` is +bound to `/src` and `{p}` where `p` is bound to the column `place` of its own record, so it +takes that column's datatype and null rather than restating them, and a `datatype` +restating the one it takes is a second spelling. Any other `datatype` still types the values — the one way to type a column someone else wrote. ## A typed column's calc is refused unless proven