Haskell 98 contravariant functors