Deriving Contravariant and Profunctor