(module raw_buf_drop_min (fn main (doc "Minimal RawBuf drop-leak reproducer (refs #42): a single owned 1-slot Int RawBuf, written once and read once, then dropped at the end of main. Prints 10. Under AILANG_RC_STATS the owned buffer's drop call must fire, so allocs are balanced by frees (live == 0). The leak is independent of binder names — the fully inline form (app RawBuf.get (app RawBuf.set (new RawBuf (con Int) 1) 0 10) 0) with no let-binding at all leaks identically.") (type (fn-type (params) (ret (con Unit)) (effects IO))) (params) (body (app print (let buf (new RawBuf (con Int) 1) (app RawBuf.get (app RawBuf.set buf 0 10) 0))))))