Como a covariância e contra-variância genéricas são implementadas no C # 4.0?

Não participei do PDC 2008, mas ouvi algumas notícias de que o C # 4.0 foi anunciado para oferecer suporte à covariância e contra-variância genérica. Ou seja, List<string>pode ser atribuído a List<object>. Como poderia ser? No livro C # in Depth de Jon Skeet , é explicado por que os...