Co&ContraVariance in Scala (and not Java)