[Haskell-cafe] Typing with co/contra-variance.