Types in Lambda CalculusCovers types in lambda calculus, including defining types, specifying rules, and proving soundness.
Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Records and VariantsIntroduces records, variants, evaluation rules, typing rules, aliasing challenges, and benefits in programming languages.
Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Type Checking LabFocuses on implementing a type checker for Amy, covering name and type analysis, typing constraints generation, and the importance of type checking in compilation.