Incompatibilidade de tipo estranho em Scala

Espero que esta pergunta ainda não tenha sido respondida em outro lugar. Não encontrou uma resposta aqui.

No meu sistema de localização, tenho uma classe chamada Idioma

class Language(val name:String, dict:HashMap[String, String]) {
  def apply(key: String):String = (dict get key) match {
    case None    => "°unknown°"
    case Some(s) => s
  } 

  //DO SOME OTHER THINGS
}

e um objeto chamado LanguageCentral

object LanguageCentral {
  private var lang:Option[Language] = None
  //SOME OTHER PRIVATE MEMBERS

  def language = lang

  def language_=(l:Option[Language]) = l match {
    case None    => {}
    case Some(l) => setLanguage(l)
  }

  def setLanguage(l:Language) {
    lang = Some(l)
    //DO SOME OTHER THINGS
  }

  //DO LOTS OF OTHER THINGS
}

Ainda não escrevi nenhum código que esteja usando essa estrutura, mas tentar em uma sessão interativa revelou um erro de tipo que eu realmente não entendo:

scala> val l = new LanguageCreator("Languages.csv").getLanguage("English")
l: Option[Language] = Some(Language@7aeb46d)

scala> LanguageCentral.language=l                                         
<console>:23: error: type mismatch;
 found   : Option[Language]
 required: Option[Language]
       LanguageCentral.language=l
                                ^

scala> LanguageCentral setLanguage (l getOrElse null)                     
<console>:24: error: type mismatch;
 found   : Language
 required: Language
       LanguageCentral setLanguage (l getOrElse null)
                                      ^

Eu realmente não tenho idéia do que está errado. Mas, pela minha experiência com Haskell, acho que a solução está apenas a uma pequena mudança .;)
Alguém poderia me ajudar? Valeu.

P.S .: usando Scala 2.8.0.final

questionAnswers(1)

yourAnswerToTheQuestion