// Capture demo:
// - locals are captured by reference using RefCellBox (use .get/.set)
// - non-locals (global/statics) are captured by value (P1)
local y = 41
local ycell = new RefCellBox(y)
local f = fn(x){ ycell.set(ycell.get() + 1); x + ycell.get() }
// outer writes through RefCellBox
// y itself remains 41; ycell holds the mutable state
local con = new ConsoleBox()
con.println(f(1)) // 43 (ycell started 41, incremented to 42, x=1 -> 43)
