Functors contravariantes são uma ferramenta utilizada na linguagem de programação Haskell. Eles permitem que você mapeie uma função  sobre um tipo de dado, mas de forma inversa. Isso significa que, em vez de transformar os elementos dentro de um tipo de dado, a função é aplicada aos elementos antes de entrarem no tipo de dado.Por exemplo, imagine que você tem uma lista de números e quer aplicar uma função para cada elemento da lista. Com um functor normal, você aplicaria a função diretamente a cada elemento da lista. Com um functor contravariante, você aplicaria a função antes de os elementos entrarem na lista. 