Unifying Functional and Object-Oriented Programming with Scala. - ODERSKY, MARTIN; ROMPF, TIARK (Communications of the ACM, 2014)