but the following would be fine:

    class MySubscriber2[-A] {
      def onNext(elem: A): Unit = ???
    }

    class Foo[+T] {
      def tee3(other: MySubscriber2[T]): Foo[T] = this
    }

    val foo = new Foo[Apple]
    val s3 = new MySubscriber2[Fruit]
    val foo5: Foo[Apple] = foo.tee3(s3)