That's taken from http://docs.scala-lang.org/sips/completed/futures-promises.html