> 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.