On Wed, Aug 13, 2014 at 5:53 PM, Haoyi Li <haoyi.sg@gmail.com> wrote:
Both solutions have merit, but the idea of some implementations of the type checker having covariance and some contravariance is fairly disturbing.

Why can't we have both? That's the only way to properly type things, since immutable-get-style APIs are always going to be convariant, set-only style APIs (e.g. a function that takes 1 arg and returns None) are going to be contravariant and mutable get-set APIs (like most python collections) should really be invariant.
 
That makes sense. Can you put something in the mypy tracker about this? (Or send a pull request. :-)

--
--Guido van Rossum (python.org/~guido)