Sentence:  As we will see in Chapter 8, we see both <WSD>covariance</WSD> and contravariance throughout the Java Collections. They largely exist to ensure that the generics just “do the right thing” and behave in a manner that should not surprise the developer. 
Meaning of the word marked with <WSD> tags:  The conversion of data types from wider to narrower in certain situations.