www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

turnstile.scrbl (1284B)


      1 #lang scribble/manual
      2 
      3 @(require (for-label racket/base))
      4 
      5 @title[#:style '(toc)]{The @racketmodname[turnstile] language}
      6 
      7 @defmodule[turnstile #:lang #:use-sources (turnstile/turnstile)]
      8 
      9 @(author
     10   (author+email "Stephen Chang" "stchang@racket-lang.org" #:obfuscate? #t)
     11   (author+email "Alex Knauth" "alexander@knauth.org" #:obfuscate? #t)
     12   (author+email "Ben Greenman" "types@ccs.neu.edu" #:obfuscate? #t))
     13 
     14 Turnstile aims to help Racket programmers create typed languages. It does so
     15 with extensions of Racket's macro-definition forms that facilitate
     16 implementation of type rules alongside normal macro code. As a result, the
     17 macros implementing a new language directly type check the program during
     18 expansion, obviating the need to create and call out to a separate type checker.
     19 Thus, a complete typed language implementation remains a series of macro
     20 definitions that may be imported and exported in the standard way that Racket
     21 programmers are accustomed to.
     22 
     23 @local-table-of-contents[]
     24 
     25 @include-section{guide.scrbl}
     26 @include-section{reference.scrbl}
     27 
     28 @(bibliography 
     29   (bib-entry #:key "bidirectional"
     30              #:author "Benjamin C. Pierce and David N. Turner"
     31              #:title "Local Type Inference"
     32              #:location "POPL"
     33              #:date "1998")
     34   )