Add an example of a contravariant generic type.

Here, OutputChannel is defined to be contravariant in T. So an output
channel of AnyRefs, say, is a subtype of an output channel of Strings.

Although it may seem non-intuitive, it actually makes sense. To see
why, consider what you can do with an OutputChannel[String].

The only supported operation is writing a String to it. The same operation
can also be done on an OutputChannel[AnyRef]. So it is safe to substitute
an OutputChannel[AnyRef] for an OutputChannel[String].

By contrast, it would not be safe to substitute an OutputChannel[String]
where an OutputChannel[AnyRef] is required. After all, you can send any
object to an OutputChannel[AnyRef], whereas an OutputChannel[String]
requires that the written values are all strings.