4 public function __construct(T
$x) {}
10 function fa(Foo
<A
> $x) {}
11 function fb(Foo
<B
> $y) {}
14 // $x has type B and therefore also type A
16 // $y can be assigned type Foo<A> because B <: A
18 // So this is actually legal
20 // By contravariance we can also pass it to something expecting Foo<B>