A Racket-based framework for creating extensible and reusable typed languages.
- create typed (Racket
#lang
) DSLs (in the same way as plain#lang
s) - prototype new type system features, modularly
(Requires Racket v7.0 or later.)
Install Option 1: Via Racket package server
raco pkg install --auto turnstile
- clone the repo
cd
into repo root dirraco pkg install --auto macrotypes-lib/ turnstile-lib/
- Install the examples and tests (skip this step if installed via package server):
raco pkg install --auto rackunit-macrotypes-lib/ turnstile-example/ turnstile-test/
- Run the test suite:
raco test --drdr -p turnstile-test
- additional tests and examples using the core types-as-macros (i.e., non-Turnstile) API:
- install:
raco pkg install --auto macrotypes-example/ rackunit-macrotypes-lib/ macrotypes-test/
- run:
raco test --drdr -p macrotypes-test
- install:
- POPL 2020: [paper] [artifact] [code] [Cur (an extensible proof assistant created with Turnstile+)]
- POPL 2017: [paper] [artifact] [code]