1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
enum class Option[+T] extends Serializable { def isDefined: Boolean } object Option { case Some(x: T) { def isDefined = true } case None extends Option[Nothing] { def isDefined = false } } object Test { def main(args: Array[String]) = assert(Some(None).isDefined) }