Obviously this vademecum required quite a bit of reseach and double-checking, so here are all the links I’ve found helpful (and you might too).
-
[scala-spec] The Scala Language Specification
-
[enumeration-docs] http://www.scala-lang.org/api/current/index.html#scala.Enumeration
-
[enum-sip] https://docs.google.com/document/d/1mIKml4sJzezL_-iDJMmcAKmavHb9axjYJos_7UMlWJ8/edit
-
[twitter-scala-school] Twitter’s Scala School: http://twitter.github.io/scala_school quite a bit of Scala concepts. Which helped me a lot in nicely explaining Variance (nicest explanation I found, since "ever").
-
[universal-types] Very old, but still valid explanation of Universal Types: http://www.scala-lang.org/old/node/128
-
[maciver-existentials] Existential Types by D.R. MacIver: http://www.drmaciver.com/2008/03/existential-types-in-scala/
-
[scala-doc] Scala Doc: http://www.scala-lang.org/api/current/index.html
-
[dragos-specialized] Great presentation about introducing
@specialized
to Scala 2.8, by Dragos: Scala Days 2010 - Specialization -
[wiki-diamond] Wikipedia on the Diamond Problem
-
[generics-specialization] Martin Odersky's and Iulian Dragos's whitepaper about specialization Compiling generics through user-directed type specialization
-
[dangers-of-subtype-polymorphism] The dangers of correlating subtype polymorphism with generic polymorphism blog post
-
[safar-linearization] Safari Books online about Type Linearization: http://blog.safaribooksonline.com/2013/05/30/traits-how-scala-tames-multiple-inheritance/
-
[phantom-types-haskell] James Iry and his blog post about Phantom Types in Haskell and Scala
-
[typesafe-builder] One of the earliest blog posts in the Scala community (I think) about Phantom Types by Rafael Ferreira Type Safe Builder Pattern in Scala
-
[kriss-type-lambda] Great StackOverflow answer by Kriss Nuttycombe about Type Lambdas: http://stackoverflow.com/questions/8736164/what-are-type-lambdas-in-scala-and-what-are-their-benefits
-
[rogue-phantom-types] Foursquare blog about use of Phantom Types in their Rogue Library Going Rogue part 2 - phantom types, by Jason Liszka
-
[kind-pull-req] The :kind pull request to
scala
, by Adriaan Moors scala/scala#2340 -
[patronus-type] Eugene Yakota’s constraining class linearization in scala, where he discovers "patronus type" pattern
-
[the-flying-sandwich-part] Eugene Yakota’s tips for Scala patterns and development Scala: The flying sandwich parts
-
[package-object] Martin Odersky, Lex Spoon - Package Objects site (2010)
-
[union-types-miles] Union Types explained by Miles Sabin Miles Sabin on Union Types
-
[vampire-type] Vampire Methods for Structural Types
Presentations:
-
[types-of-types-lambda-days] Quick intro and overview of this article, presented by Konrad Malawski on Lambda Days Kraków 2014