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 GenericsExplores subtyping, generics, type bounds, variance, covariance, and array typing challenges in Java and Scala.
Taming Null ReferencesExplores the challenges of null references in programming languages and proposes solutions to mitigate their drawbacks while ensuring compatibility with existing codebases.
Type InferenceExplores type inference in statically typed languages, using algorithms to assign types to program expressions accurately.
Subtyping and Type CalculusExplores subtyping, type calculus, and type bounds calculation in a system with subtyping, guiding through exercises and proofs step by step.