Final project of my "Elements of Programming Languages" course that I took at the University of Edinburgh.
Models a pure, typed, object-oriented programming language (operation types and rules defined in the course) in Scala.
Core.scala contains the basic untyped calculus of the language, Source.scala contains higher level structures as well as the typing system, and Desugar.scala deals with translating between the two.