○
Planned This feature is planned but not yet implemented.
IDEA PIN (O2 head 3) — WALLED on infra (2026-07-05 sweep): key
Error Details
output_emitted.zig:69:134: error: expected ')', found ':'
Failure Output
🎯 Compiler coordination: Passes: 20 (flow-based: elaborate, analysis, emission)
Error: output_emitted.zig:69:134: error: expected ')', found ':'
const result_1 = main_module.__store_write_pool_event.handler(.{ .row = @as(i64, @intCast(__koru_store_pool.__koru_resolve(id: 7))), .field = 1, .value_0 = 0, .value_1 = (&__koru_store_pool.hp)[__koru_store_pool.__koru_resolve(id: 7)] - 10 });
^ Code
// ASPIRATION — TODO idea pin. O2 (RULED 2026-07-04): one lvalue path
// grammar, four addressing heads — (3) declared keys: a field marked key
// at create is addressable as `pool[id: 7].hp`, and the index it needs is
// a DECLARED cost. `key:` marking spelling PROVISIONAL (candidate: an
// invocation-arg directive per ruling 8).
//
// THE CREDITOR — koru-examples/downloads. It runs today with a linear key scan
// standing in for this head: an inner `! sweep x when x.idx == pr.index` nested
// inside the batch sweep, purely to reach the one row a `! progress` names.
// Three transfers make it cheap and it reads like a workaround because it is
// one. The scan is the shape this pin retires.
//
// Reaching for a POSITION instead is not the shortcut it looks like: the row
// ordinal is not identity under swap-remove, and a stored position loses its
// write silently across a removal (690_092, measured). A declared key is the
// identity that survives, which is why this head and that defect are one piece
// of work.
~import std/io
~import std/store
~std/store:new(pool, key: id, capacity: 64) { id: i64, hp: i64 }
~std/store:insert(pool) { id: 7, hp: 50 }
| row _ |> std/store:stored { pool[id: 7].hp: pool[id: 7].hp - 10 }
|> std/io:print.ln("hp {{ pool[id: 7].hp:d }}")
Expected output
hp 40
Flows
flow ~new click a branch to expand · @labels scroll to their anchor
new (expr: pool, key: id, capacity: 64, source: id: i64, hp: i64)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (expr: pool, source: id: 7, hp: 50)
Test Configuration
MUST_RUN