Expor um tipo dependente de caminho proveniente de um tipo singleton

Estou tentando fazer com que Scala encontre o tipo certo para um tipo dependente de caminho proveniente de um tipo singleto

Primeiro, aqui está o contêiner de tipo para o exemplo e uma instância:

trait Container {
  type X
  def get(): X
}

val container = new Container {
  type X = String
  def get(): X = ""
}

Eu posso ver a String nesta primeira tentativa (então eu já tenho um cenário de trabalho):

class WithTypeParam[C <: Container](val c: C) {
  def getFromContainer(): c.X = c.get()
}

val withTypeParam = new WithTypeParam[container.type](container)

// good, I see the String!
val foo: String = withTypeParam.getFromContainer()

Mas quando não há parâmetro de tipo, isso não funciona mai

class NoTypeParam(val c: Container) {
  def getFromContainer(): c.X = c.get()
}

val noTypeParam = new NoTypeParam(container)

// this does *not* compile
val bar: String = noTypeParam.getFromContainer()

lguém sabe por que o parâmetro type é necessári

questionAnswers(2)

yourAnswerToTheQuestion