Durchschneide das Scala-Set mit dem Subtyp-Set

Warum kompiliert diese Funktion nicht?

case class MyType(n: Int)
def intersection(s1: Set[MyType], s2: Set[_ <: MyType]) =
  (s1 & s2)

Ich erhalte folgenden Fehler:

Fehler: Typenkonflikt; gefunden: Setze [_ $ 1], wobei Typ _ $ 1 <: MyType erforderlich ist: scala.collection.GenSet [MyType] Hinweis: _ $ 1 <: MyType, aber Merkmal GenSet ist in Typ A unveränderlich wie_ <: MyType. (SLS 3.2.10) (w & r)

Gibt es eine einfache Möglichkeit, das zweite Argument zu "promoten", um Set [MyType] einzugeben, ohne asInstanceOf zu verwenden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage