| Yep, you are right. I looked deeper into the Scala implementation of Option [1] to see how Scala achieves that, and whether I can port their implementation to Swift. Long story short: Scala has a bottom type [2], Swift does not, therefore the Scala-implementation can not be ported to Swift. A bit more detail: In Scala, Some and None are not enum-Values (as in Swift), but there is an abstract class called Option which Some and None inherit from. Option is a generic class. None is not generic anymore (this alone isn't possible in Swift!), but is an Option[Nothing]. Nothing is the bottom type: it can be returned for any Option[U], because Nothing "inherits" from all classes, and therefore also from U. OK, that was still pretty short - if anyone is interested in a longer write-up including code, please let me know and I'll write a blog post :-) [1] https://github.com/scala/scala/blob/838ff2c2f256d1c114a406ff... [2] http://en.wikipedia.org/wiki/Bottom_type |