News for hackers. Stuff that matters.
Re:Scala: Where it came from, Where it's going by zak_mc_kracken on Tuesday March 17, 2015 @02:14PM (#9220029)
This is correct given Scala's limitation: the only common supertype between Int and Option is Any.

A language that supports union types (e.g. Ceylon) will type this expression as Int|Option[Int], which is as specific as you can get.

Re:Scala: Where it came from, Where it's going by axiomabsolute on Tuesday March 17, 2015 @03:33PM (#9220663)
I believe Ceylon will actually further refine Int | Option[Int] to simply Option[Int].

Option[Int] is simply an alias to the type Int | Null, so Int | Option[Int] would become Int | Int | Null after replacement, which simplifies to Int | Null since Int | Int is equivalent to just Int.