- Monads: http://www.codecommit.com/blog/ruby/monads-are-not-metaphors
- Options and matching: http://blog.originate.com/blog/2014/06/15/idiomatic-scala-your-options-do-not-match/
- More options: http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to-scala-part-5-the-option-type.html
- Case classes and pattern matching: https://www.artima.com/pins1ed/case-classes-and-pattern-matching.html
- More pattern matching: https://matt.aimonetti.net/posts/2012/09/20/what-is-scala-pattern-matching/
- Testing futures: http://christopher-batey.blogspot.co.uk/2014/02/testing-scala-futures-with-scalatest-20.html