Not that I'm aware or conscious of.

OTOH, I spend quite a bit of time unaware and/or unconscious.

I think? that scalac won't apply two conversions in order that OptionSafe remain boxless.

But I was inspired to respond to hongjiang on scala-user, pasted below.  If "typesafe" (the company or the Platonic ideal it embodies) means "the compiler will tell me if I do something stupid", then it fails the test in this instance.

Here's another data point.

Someone recently pointed out that type widening on Option.orElse is confusing when it widens to Any because you have supplied unrelated types.

One solution on the ML was to write an orElse that gives you back what you put in.  It's more constraining, but safer.

However, if you have managed to produce an Option[Unit], then this solution won't tell you either, since it will happily discard your alternative value in favor of ().

object Test extends App {
  /** Constrain type of alternative.
   *  val i = Some(5L) exactlyOrElse 3    // good
   *  val j = Some(5L) exactlyOrElse "hi" // bad
   */
  implicit class OrElse[A](x: Option[A]) {
    def orElseExactly(a: A): A = x getOrElse a
  }
  val x = Some(5L)
  val y = x map (_ => ()) orElseExactly 3
  val q = x map (println) orElseExactly 3
  val z = Option[Unit](null.asInstanceOf[Unit]) orElseExactly {
    Console println "Calculate final result of months of research for publication..."
    3
  }
  Console println s"$x, $y, $q, $z"
}