https://github.com/lexi-lambda/racket-higher-rank
https://github.com/lexi-lambda/racket-higher-rank
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lexi-lambda/racket-higher-rank
- Owner: lexi-lambda
- License: isc
- Created: 2017-04-16T18:01:19.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-09T16:34:21.000Z (about 8 years ago)
- Last Synced: 2025-01-30T02:10:00.995Z (5 months ago)
- Language: Racket
- Size: 8.79 KB
- Stars: 21
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# higher-rank
A Racket implementation of [Complete and Easy Bidirectional Typechecking
for Higher-Rank Polymorphism][complete-and-easy] using the techniques outlined in [Type Systems as Macros][types-as-macros]. This is a sister project to [the simpler Haskell implementation][haskell-higher-rank] from which it is adapted.This project should be installed as a Racket package, and it defines `#lang higher-rank`. You can run a REPL from within DrRacket, or you can use the command line:
```
$ cd racket-higher-rank
$ raco pkg install
$ racket -iI higher-rank
Welcome to Racket v6.8.0.3.
> unit
: Unit
#
> (lambda x x)
: (-> g1^ g1^)
#
> ((: (lambda id ((id (lambda x x)) (id unit)))
(-> (forall a (-> a a)) Unit))
(lambda x x))
: Unit
#
```[complete-and-easy]: http://www.cs.cmu.edu/~joshuad/papers/bidir/
[types-as-macros]: http://www.ccs.neu.edu/home/stchang/popl2017/
[haskell-higher-rank]: https://github.com/lexi-lambda/higher-rank