only immutable data structures should be made covariant Examples Rust lifetime variance Covariant arrays