A little Scheme implementation (for certain definitions of 'Scheme') using a form of Hindley-Milner-Damas type inference. Right now evalS kind of works, and it passes some type checking tests. I will be further expanding this and supply a live web demo whenever I have time. Also hopefully I'll start writing some sort of a compiler for this in Haskell at some point.
This takes a lot of influence/code-adaptation from:
- Type infers non-polymorphic algebraic data types (poly's to add).
- Type infers def/defn/lambdas.
- Type infers atoms.
- Type infers function application.
- Type infers let and let* (thinking about removing let and just making let* let).
- Type infers non-polymorphic lists (polymorphic lists are illegal).
- Add better errors.
- Add polymorphic algebraic data types.
- Add pattern matching.
- Add type annotations.
- Fix up the web demo.