title: Scala - how to cast Option[X] to Option[y]
body: <p>I have simple service classes</p>
  
  <pre><code>trait ItemService[+A] {
    def getItem(id: Int): Option[A]
  }
  class MockItemService(implicit inj: Injector) extends ItemService[Item] with Injectable      {
    def getItem(id: Int) =  {
       Option(new Feature("My Headline",Author(2,"Barry White")))
    }
  }
  </code></pre>
  
  <p>using scaldi im binding MockItemService to ItemService then accessing like</p>
  
  <pre><code>class Features(implicit inj: Injector) extends Controller with Injectable {
     val itemService = inject [ItemService[Item]]
     def item(cat:String, id:Int, urlTitle:String) = Action {   
        itemService.getItem(id).map { item =&gt; Ok(views.html.feature.item(item))      
     }.getOrElse(NotFound)    
    }  
  }
  </code></pre>
  
  <p>what i want is for item to be of type Feature and not Item. Feature extends Item.</p>