Functional Ownership through Fractional Uniqueness
Danielle Marshall (University of Kent), Dominic Orchard (University of, Kent, University of Cambridge)

TL;DR
This paper introduces a novel type system that integrates fractional permissions and grading to model ownership and borrowing, bridging the gap between Rust's ownership model and functional programming type systems.
Contribution
It presents the first account of ownership and borrowing that combines fractional permissions with grading, extending the Granule language to unify these concepts within a standard type system.
Findings
Shows Rust's ownership as a graded generalisation of uniqueness.
Develops a type system integrating fractional permissions with grading.
Extends Granule with new ownership and borrowing concepts.
Abstract
Ownership and borrowing systems, designed to enforce safe memory management without the need for garbage collection, have been brought to the fore by the Rust programming language. Rust also aims to bring some guarantees offered by functional programming into the realm of performant systems code, but the type system is largely separate from the ownership model, with type and borrow checking happening in separate compilation phases. Recent models such as RustBelt and Oxide aim to formalise Rust in depth, but there is less focus on integrating the basic ideas into more traditional type systems. An approach designed to expose an essential core for ownership and borrowing would open the door for functional languages to borrow concepts found in Rust and other ownership frameworks, so that more programmers can enjoy their benefits. One strategy for managing memory in a functional setting is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Distributed systems and fault tolerance · Security and Verification in Computing
