~ashton314/understanding-turnstile

Understanding the Turnstile paper
8f6ace31 — Ashton Wiersdorf 1 year, 22 days ago
README formatting
b5720920 — Ashton Wiersdorf 1 year, 22 days ago
Add license and README
64aed333 — Ashton Wiersdorf 1 year, 26 days ago
Cleanup: remove ē → -e

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~ashton314/understanding-turnstile
read/write
git@git.sr.ht:~ashton314/understanding-turnstile

You can also use your local clone with git send-email.

#Understanding Turnstile

Turnstile is a system for developing typed DSLs using macros in Racket, and was introduced in the paper Type Systems as Macros. [1] It's a fascinating idea, but the paper is a little difficult to follow. This repository implements the basics of a type system with macros using straight-forward Racket, and takes up only 68 lines in a single file. (stlc.rkt)

I have a write-up about this on my blog, which I recommend reading if you're new to this.

#License

MIT.

#Authors

  • Ashton Wiersdorf (just this particular implementation, not the paper from which the original idea came)

#References

  • [1] Chang, S., Knauth, A. and Greenman, B. 2017. Type systems as macros. Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages - POPL 2017 (Paris, France, 2017), 694–705.