Я хотел бы унаследовать от неизменяемой карты Scala. Он определяется как таковой:
trait Map[A, +B]
К сожалению, моя реализация должна быть инвариантной в B. Я попробовал следующее, но безуспешно:
def +(kv : (A, B)) : MyMap[A, B] = { ... }
override def +[B1 >: B](kv : (A, B1)) : MyMap[A, B1] =
throw new IllegalArgumentException()
Может быть, есть уловка с @uncheckedVariance
?