> class Foo
> {
> auto foo ()
> {
> return "Foo";
> }
> }
>
> class Bar : Foo
> {
> auto foo ()
> {
> return "Bar";
> }
> }
>
Ouch, what a terrible idea to base a class hierachy on inference.
But nonetheless covariance checking should be performed after inference.