5 function UseAs
<Tv
, Tu
as Tv
>(Cov
<Tv
> $x, Cov
<Tu
> $y): Tu
{
9 function UseSuper
<Tv super Tu
, Tu
>(Cov
<Tv
> $x, Cov
<Tu
> $y): Tu
{
14 class MyDerived
extends MyBase
{}
16 function DoesWork(Cov
<MyBase
> $cb, Cov
<MyDerived
> $cd): MyDerived
{
17 return UseSuper($cb, $cd);
20 function DoesNotWork(Cov
<MyBase
> $cb, Cov
<MyDerived
> $cd): MyDerived
{
21 return UseAs($cb, $cd);