Опция getOrElse Тип ошибки несоответствия

Почему этот код вызывает ошибку несоответствия типов в Scala 2.9.2? Я ожидал чтоgetOrElse возвращает типString но на самом деле это возвращаетjava.io.Serializable:

scala> implicit def StringToOption(s:String) = Option(s)
StringToOption: (s: String)Option[String]

scala> "a".getOrElse("")
res0: String = a

scala> var opt:Option[String] = "a".getOrElse("")
<console>:8: error: type mismatch;
 found   : java.io.Serializable
 required: Option[String]
       var opt:Option[String] = "a".getOrElse("")
                                             ^

Хорошо:

scala> implicit def StringToOption(s:String): Option[String] = Option(s)
StringToOption: (s: String)Option[String]

scala> var b:Option[String] = "a".getOrElse("") toString
b: Option[String] = Some(a)

Ответы на вопрос(1)

Ваш ответ на вопрос