What's in the Box: Ergonomic and Expressive Capture Tracking over Generic Data Structures (Extended Version)
Not on the map. Why?
Abstract (arXiv)
Capturing types in Scala unify static effect and resource tracking with object capabilities, enabling lightweight effect polymorphism with minimal notational overhead. However, their expressiveness has been insufficient for tracking capabilities embedded in generic data structures, preventing them from scaling to the standard collections library -- an essential prerequisite for broader adoption. This limitation stems from the inability to name capabilities within the system's notion of box types. This paper develops System Capless, a new foundation for capturing types that provides the theoretical basis for reach capabilities (rcaps), a novel mechanism for naming "what's in the box." The calculus refines the universal capability notion into a new scheme with existential and universal capture set quantification. Intuitively, rcaps witness existentially quantified capture sets inside the boxes of generic types in a way that does not require exposing existential capture types in the surface language. We have fully mechanized the formal metatheory of System Capless in Lean, including proofs of type soundness and scope safety. System Capless supports the same lightweight notation of capturing types plus rcaps, as certified by a type-preserving translation, and also enables fully optional explicit capture-set quantification to increase expressiveness. Finally, we present a full reimplementation of capture checking in Scala 3 based on System Capless and migrate the entire Scala collections library and an asynchronous programming library to evaluate its practicality and ergonomics. Our results demonstrate that reach capabilities enable the adoption of capture checking in production code with minimal changes and minimal-to-zero notational overhead in a vast majority of cases.
Key facts. Cited by 2 papers in the map (data through 14 Oct 2026). First posted on arXiv 9 Sep 2025.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2026: 2.
2 papers.
- 2026Tracking Capabilities for Safer Agentscited by 4
- 2026LACUNA: Safe Agents as Recursive Program Holescited by 1
- 2026LACUNA: Safe Agents as Recursive Program Holes27 May 2026
- 2026Tracking Capabilities for Safer Agents1 Mar 2026