Un-optioning an optioned Option
Say I have a val s: Option[Option[String]] . It can thus have the following values: Some(Some("foo")) Some(None) None I want to reduce it so that the first becomes Some("foo") while the two others become None . Obviously there are many ways to accomplish this, but I'm looking for a simple, perhaps built-in, less-than-one-liner. It's a shame that flatten doesn't exist. It should. Flatten does exist now. As before, s getOrElse None (in addition to the other answers) will also do the same thing. You could use scalaz join to do this, as this is one of the monadic operations: doubleOpt.join Here it