diff --git a/TODO.org b/TODO.org index b0b835fe..8645716f 100644 --- a/TODO.org +++ b/TODO.org @@ -10,6 +10,12 @@ pointing at it. A CANCELLED entry carries the one-line reason, because an idea rejected without a record is an idea that gets re-proposed. * Language surface +** DONE A literal's reading is fixed where it is bound +CLOSED: [2026-09-26] +Decision 132, clarifying 117: a vector, map or text literal is typed only when its own +binding is annotated or it is passed straight to a typed parameter; a later typed use +converts the dyn value at that site. Rules out a later line changing what an earlier +line prints. ** NEXT .fln is the only source language Decided 2026-09-26 (130): the .flan syntax is retired. .fln names carry no =?= or =!=; predicates are =is-=/=has-=, and the raylib generator emits =is-key-pressed=. Swift @@ -781,6 +787,9 @@ One spelling for one operation; != stays, and not= is refused with a suggestion of !=. * Checker +** TODO A dyn operand past the second in a + fold is converted to the running type +=(+ 1 2 d)= with d a dyn char prints 100: the dyn is unboxed to i32 before adding, where +rule 117 says typed beside dyn gives dyn (=(+ 3 d)= gives =\d=). Predates the char lane. ** WAIT Checking a wide fold of let operands is slow Parked 2026-09-26: design first; remeasure on a quiet machine, it was timed under load 20. A 2000-operand (bit-and (let …) …) takes 32 s to check (37 s before the bit operators);