Implementation of a pluggable gradual type system for Common Lisp.
Status: THIS IS VAPORWARE AND I DON'T KNOW WHAT I'M DOING.
Papers:
- Gradual Typing for Functional Languages
- Pluggable type systems
- Static typing where possible, dynamic typing when needed: the end of the cold war between programming languages
- Typed Scheme: From Scripts to Programs
- Languages as Libraries
- Gradual typing for Smalltalk
Other implementations:
- An optional type system for Clojure
- Typed Racket
- GradualTalk: A Practical Gradual Type System For Smalltalk
Plan:
- Functions typespecs (arity, optional and keyword args, etc)
- Add type specs to common-lisp package functions
- Try to type a big module (replace :use :cl by :use :gradual)
- Tests
- CLOS, structs
- Polymorphism
- Inference