Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Subtyping and Generics in ScalaExplores subtyping, generics, and variance in Scala, emphasizing the importance of precise type descriptions and demonstrating practical applications of for expressions.
Polymorphism: Cons-ListsCovers the concept of polymorphism in programming and the implementation of immutable linked lists in Scala.
Operator Overloading in C++Explores operator overloading in C++, emphasizing internal and external overloads and their application to complex numbers.
Inheritance: Polymorphism & CastingCovers inheritance, polymorphism, and casting in object-oriented programming, emphasizing code factorization and generic object manipulation.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.