Post-ship field test of the shipped `series` library extension as a
downstream Form-A author working from the public surface only. Five
fixtures under examples/fieldtest/ across the construction/auto-import,
ring-buffer/financial-indexing, len/total_count bookkeeping, param-in
error-quality, and operator-naming axes; spec at
docs/specs/0067-fieldtest-series-step1.md.
Wins (carry-on): auto-import works with no `(import series)`; the
financial index (0 = newest) maps directly onto the bounded-buffer
mental model and stays correct after multiple wraps; the param-in
diagnostic for a disallowed element type names the type, the
type-variable, the qualified type, and the allowed set.
Findings routed:
- [bug] An owned ADT threaded through tail-recursion whose base case
neither returns nor consumes it is never dropped — a general
drop-soundness leak (a plain `Box` control with no Series/RawBuf
also leaks). Series surfaces it heavily on the whitepaper's headline
streaming pattern, and the committed reference examples/series_sma.ail
itself leaks (live=8). Minimal repro: series-step1_5 (live=4).
- [friction] `ail describe ... Series.push` (the canonical type-scoped
form) reports module-not-found; only `series.push` / bare `push`
resolve, and no command lists a type's op set.
- [spec_gap] referencing a kernel base type (`RawBuf`) from a user ADT
ctor field requires full qualification (`raw_buf.RawBuf`) while bare
`Series` works in type-position via auto-import — the asymmetry is
undocumented.
The fixtures that leak still produce correct output; the leak is a
separate observable under AILANG_RC_STATS and an orthogonal,
pre-existing bug, not a Series defect.
refs #61