Pa nije isto. Na stranu sintaksna greska, radi se o jednostavnoj implementacij contracta (interfacea). Instancu klase uvek mozes da castujes u interfejs koji implementira I da pristupis preko elemenata interfejsa.
IEnumerable<Bars> treba da moze da se vidi kao IEnumerable<IBar> i u tu svrhu su i uvedene varijacije u C#. Sam objekat koji implementira IEnumerable<out T> ne mora da kovarijantan, vazno je samo da ima kovarijantnu implementaciju IEnumerable<out T> interfejsa. List<T> u Foo<T> koji sam dao ima kovarijabilni IEnumerable<IBar> jer je sa where uslovom u Foo<T> ograniceno da samo implementacije IBar-a mogu da prodju. Ostalo handluje kovarijabilnost.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić