
TL;DR
Idris 2 is a dependently typed programming language that incorporates Quantitative Type Theory to enable precise resource management and linearity, facilitating safer concurrent and distributed programming.
Contribution
This paper introduces Idris 2, a new dependently typed language based on QTT, demonstrating practical benefits like resource tracking and session types.
Findings
Supports expressing data erasure at the type level
Enables resource tracking for safe concurrency
Facilitates type-safe session-based communication
Abstract
Dependent types allow us to express precisely what a function is intended to do. Recent work on Quantitative Type Theory (QTT) extends dependent type systems with linearity, also allowing precision in expressing when a function can run. This is promising, because it suggests the ability to design and reason about resource usage protocols, such as we might find in distributed and concurrent programming, where the state of a communication channel changes throughout program execution. As yet, however, there has not been a full-scale programming language with which to experiment with these ideas. Idris 2 is a new version of the dependently typed language Idris, with a new core language based on QTT, supporting linear and dependent types. In this paper, we introduce Idris 2, and describe how QTT has influenced its design. We give examples of the benefits of QTT in practice including:…
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.
