title: Map of Foo[T] to Bar[T]
body: <p>Can this be done?</p>
  
  <pre><code>case class Foo[T](value: T)
  case class Bar[T](value: T)
  
  val map = mutable.Map.empty[Foo[_], Bar[_]]
  
  map(Foo(1)) = Bar(1) // correct
  map(Foo(1)) = Bar(1.1) // should cause a compiler error
  </code></pre>
  
  <p>It should allow any type <code>T</code>, as long as both <code>Foo#T</code> and <code>Bar#T</code> are the same.</p>