Note on Polymorphism and Subtyping
Programming languages such as Scala and (sufficiently recent versions of) Java combine parametric polymorphism with subtyping.
There are multiple solutions for how to design a language with these two features, but they are beyond this course
References
- Foundations of software course