Implementing a programming language. The language includes a static type system with full type inference. The syntax is mostly based on racket. Heavily aided by Types and Programming Languages by Benjamin C. Pierce.
In addition to TAPL, Complete Type Inference for Simple Objects by Mitchell Wand (1987) was used as a resource. The type checker includes an implementation of the algorithm Wand described for inferring the types of records.