単純化されたコード例を考えると:
sealed trait A {
val c1: String
val c2: Int
def copy[Z <: A](src: File) : Z
}
case class B(c1: String, c2: Int, src: File) extends A
case class C(c1: String, c2: Int, c3: MyClass, src: File) extends A
ケースクラスと「ターゲット」ファイルに対して生成されたものと一致するように、特性Aでコピーメソッドを定義するにはどうすればよいですか? 与えられた定義は型チェックを行い、クラス B と C にメソッドのコピーがないことを訴えます。