title: Option getOrElse type mismatch error
body: <p>Why does this code raise a type mismatch error in Scala 2.9.2? I expected that <code>getOrElse</code> returns type <code>String</code> but actually it returns <code>java.io.Serializable</code>:</p>
  
  <pre><code>scala&gt; implicit def StringToOption(s:String) = Option(s)
  StringToOption: (s: String)Option[String]
  
  scala&gt; "a".getOrElse("")
  res0: String = a
  
  scala&gt; var opt:Option[String] = "a".getOrElse("")
  &lt;console&gt;:8: error: type mismatch;
   found   : java.io.Serializable
   required: Option[String]
         var opt:Option[String] = "a".getOrElse("")
                                               ^
  </code></pre>
  
  <p>This is OK:</p>
  
  <pre><code>scala&gt; implicit def StringToOption(s:String): Option[String] = Option(s)
  StringToOption: (s: String)Option[String]
  
  scala&gt; var b:Option[String] = "a".getOrElse("") toString
  b: Option[String] = Some(a)
  </code></pre>