Conjunto Scala Intersect con conjunto de subtipo

¿Por qué no se compila esta función?

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

Obtuve el siguiente error:

error: no coincide el tipo; encontrado: Establezca [_ $ 1] donde tipo _ $ 1 <: requiere MyType: scala.collection.GenSet [MyType] Nota: _ $ 1 <: MyType, pero el rasgo GenSet es invariable en el tipo A. Puede que desee investigar un tipo de comodín como como_ <: MyType. (SLS 3.2.10) (w & r)

¿Hay una forma sencilla de "promover" el segundo argumento para escribir Set [MyType] sin usar asInstanceOf?

Respuestas a la pregunta(3)

Su respuesta a la pregunta