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.
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.