E060: Concat Input Fusion
Nested list, map and concat calls can build lists only for an outer concat
to copy their elements. Fusion appends those elements directly to the final
collection.
Mechanism and Invariants
Every concat argument must be a supported list/map/concat call. Mixed arguments stay general, preserving argument evaluation and error order. Closure evaluation and generated emitters push elements directly; VM expression instructions use list begin/push/map/end operations. The final published list still owns its copied-out storage.
Scope and State
Default eligible action expressions in closure, both VMs, generated Go Node, typed Go and TypeScript. It does not suppress map lambdas or arbitrary list-producing actions.
Reference Control
No independent universal fusion-disable reference control exists. Repetition projection is a separate analysis with its own control.
Evidence and Implementation
Historical record 037 reports JSON allocation volume from 21.4 to 20.0 MB and CSV from 15.6 to 14.0 MB in closure/generated paths. Record 044 ports fusion and native text comparisons to VMs with timing within roughly 3%. These results do not establish a current isolated effect in all targets.
Source owners: concat element evaluation,
ELISTBEGIN/ELISTPUSH/EMAPPUSH/ELISTEND,
concat emission, concat emission.
The comparison policy distinguishes same-source controls, historical changes and full checkpoints.