This blog post came into being after a few discussions about Types in Scala after some of JavaOne’s parties in 2013. After those discussions I figured that many questions are often repeated by different people, during their learning of Scala. I thought that we didn’t have an exhaustive list of the tricks that we can do with Types in Scala, so I decided to write such a list - giving real life examples why we’d need these types.
While I have been working on this article for quite some time, there’s still MUCH to do! For example Higher Kinds needs a rewrite, there’s also a lot of detail to be added in Self Type’s and lots more. Check the todo file for more.
If you’d like to help, please do! I’ll welcome any pull request, or suggestion (well, I’d prefer pull requests ;-).
Also, if you see a section marked with "✗" it means that it needs re-work or that it’s not complete in some way.