If you have twice contravariant, it becomes covariant. But if you have twice covariant, it doesn’t become contravariant… And then there’s these two guys that make it even harder, with
<? extends>and<? super>in Java. If you look at cubicles all across America, they are plastered with brains.
Erik Meijer, Duality and the End of Reactive Programming, Lang.NEXT, San Francisco, 2014