Implements (parts) of the book "Types and Programming Languages" in Rust. So far, the following has been aded:
- untyped_arithmetic: Evaluation and parser for untyped arithmetic expressions (chapter 3 and 4)
- untyped_lambda : Evaluation and a simple parser for the untyped lambda calculus (chapters 5 and 7)
- nameless_representation : Nameless represntation of lambda terms (chapter 6)
- stlc: Type checking and evaluation, including evaluation using evaluation contexts, for the simply typed lambda calculus including extensions (chapters 9-11 (and some of chapter 19))
- references: Lambda calculus with units and references (chapter 13)
- inference: implements type inference (bidirectional and constraint-based) for STLC with extensions (chapter 22)
- exception: stlc with exceptions (chapter 14)