Name the composite boundary: alias interior params and name input roles #41
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sibling of #40. #40 makes the composite output edge a named multi-field record (the capability + its naming). This issue applies the same named-projection pattern to the other two boundary edges — params and input roles — which already function (sweepable by slot, wireable by role index today) but read by position only.
The shared abstraction
All three composite-boundary edge-kinds are one shape — an ordered, positionally-indexed, named projection of interior handles, consumed by index (C23), name non-load-bearing:
input_rolesis the existing prototype (explicitVec, positional) — it just lacks a name. #40 introduces the named projection for outputs; this issue reuses that vocabulary for params and inputs.Param aliasing
Today
param_space()aggregates interior leaf params under their factory names, so two SMAs in one composite both surface aslength→["sma_cross.length", "sma_cross.length"], distinguishable only by slot. Add a composite-level alias: the composite declares which interior param slots it exposes and under what name (shortLen,longLen). Identity stays positional (C23 — the name is a non-load-bearing debug symbol, as today); this is purely legibility.Input role naming
input_rolesis already an explicitVec<Vec<Target>>, but roles render only as[in:0],[in:1]. Add a name per role.Nature, sequencing, payoff
macd(fast, slow, signal) -> (macd, signal, hist)— named inputs, named params, named multi-outputs.depends on: #40