```scala case class Foo[T, TCollection <: Iterable[T]](collection: TCollection, name: String) def doStuff[T, TCollection <: Iterable[T]](foo: Foo[T, TCollection]){ println(foo.name) } val foo = Foo[Int, Seq[Int]](Seq(1, 2), "foo") doStuff(foo) val bar = foo.copy(name = "bar") doStuff(bar) ``` The code fails to compile on the last line, as T for bar has been erased to Nothing.