Added covariance/contravariance support for operators too. And tests! Oh, the tests.