O parâmetro Covariant Type no scala precisa ser invariante na interface java

Eu tenho uma característica que se parece com isso (algumas informações adicionais podem ser encontradas emesta pergunta relacionada por mim embora eu não pense, é necessário para esta pergunta)

trait Extractor[-A,+B] {
  def extract(d:A):B
  //lots of other things
}

Para usar isso em uma estrutura java existente, eu gostaria dissoExtractor ter uma função que retorne umComparator[B] (serjava.util.Comparator) ou ainda melhorComparator[A]. Agora, isso representa um problema porqueComparatorO parâmetro s type deve ser invariável, enquantoA é contravariante eB é covariante.

Então, eu recebo erros como este:

scala> import java.util.Comparator
import java.util.Comparator

scala> trait Extractor[-A,+B] extends Comparator[A]
<console>:6: error: contravariant type A occurs in invariant position in type [-A,+B]java.lang.Object with java.util.Comparator[A] of trait Extractor
       trait Extractor[-A,+B] extends Comparator[A]
             ^


scala> trait Extractor[-A, +B] {                 
     |   def comp:Comparator[B]
     | }
<console>:7: error: covariant type B occurs in invariant position in type => java.util.Comparator[B] of method comp
         def comp:Comparator[B]
             ^

Você vê alguma saída disso ou é apenas um daqueles casos em que "o uso de genéricos java no scala dói"?