Destination Calculus: A Linear 𝜆-Calculus for Purely Functional Memory Writes
Thomas Bagrel, Arnaud Spiwack
Abstract
Destination passing —aka. out parameters— is taking a parameter to fill rather than returning a result from a function. Due to its apparently imperative nature, destination passing has struggled to find its way to pure functional programming. In this paper, we present a pure functional calculus with destinations at its core. Our calculus subsumes all the similar systems, and can be used to reason about their correctness or extension. In addition, our calculus can express programs that were previously not known to be expressible in a pure language. This is guaranteed by a modal type system where modes are used to manage both linearity and scopes. Type safety of our core calculus was proved formally with the Coq proof assistant.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 09df6811-2e55-428a-ae67-a5b5d5f439e5Cited by top-tier papers1
Ask how each one uses itBuilds on2
Related papers
- Effects as capabilities: effect handlers and lightweight effect polymorphismJonathan Immanuel Brachthäuser, Philipp Schuster, Klaus OstermannOOPSLA 2020 · 62 citations
- Consistency of a Dependent Calculus of IndistinguishabilityYiyun Liu, Jonathan Chan, Stephanie WeirichPOPL 2025 · 3 citations
- A Case for First-Class EnvironmentsJinhao Tan, Bruno C. d. S. OliveiraOOPSLA 2024
- Complete the Cycle: Reachability Types with Expressive Cyclic ReferencesHaotian Deng, Siyuan He, Songlin Jia, Yuyan Bao et al.OOPSLA 2025 · 3 citations
- Quantitative Inhabitation for Different Lambda Calculi in a Unifying FrameworkVictor Arrial, Giulio Guerrieri, Delia KesnerPOPL 2023 · 5 citations
