Dependent Type Systems as Macros
Stephen Chang, Michael Ballantyne, Milo Turner, William J. Bowman

TL;DR
Turnstile+ is a macros-based metaDSL that enables rapid prototyping and creation of dependently typed languages and DSLs tailored to specific domains, facilitating experimentation and language-oriented programming.
Contribution
It introduces Turnstile+, a high-level macros-based framework for designing and experimenting with dependently typed languages and domain-specific languages.
Findings
Supports rapid prototyping of dependently typed languages
Enables creation of tailored DSLs for specific domains
Facilitates experimentation with language features and extensions
Abstract
We present Turnstile+, a high-level, macros-based metaDSL for building dependently typed languages. With it, programmers may rapidly prototype and iterate on the design of new dependently typed features and extensions. Or they may create entirely new DSLs whose dependent type "power" is tailored to a specific domain. Our framework's support of language-oriented programming also makes it suitable for experimenting with systems of interacting components, e.g., a proof assistant and its companion DSLs. This paper explains the implementation details of Turnstile+, as well as how it may be used to create a wide-variety of dependently typed languages, from a lightweight one with indexed types, to a full spectrum proof assistant, complete with a tactic system and extensions for features like sized types and SMT interaction.
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.
