A related idea is that of a contravariant functor, which is defined like a regular functor, except that it maps every arrow to an "arrow going the other way," and it reverses the order of composition.

Here is an example: the powerset functor \\(T\\), which maps every set \\(S\\) to its power set \\(2^S\\) -- all subsets of \\(S\\) -- and every function \\(f: A \rightarrow B\\) to the function \\(T(f): 2^B \rightarrow 2^A\\) which maps a subset of \\(B\\) to its preimage under \\(f\\).

So we have \\(T(S) = 2^S\\), and \\(T(f: A \rightarrow B): T(B) \rightarrow T(A)\\). There it is, the image of \\(f\\) goes in the direction opposite to \\(f\\).

This in turn implies that \\(T\\) must "reverse the direction of composition." Suppose \\(f: A \rightarrow B\\), and \\(g: B \rightarrow C\\). Then the only way composition can work is this:

\\[T(f \triangleright g) = T(g) \triangleright T(f)\\]

Here is an example: the powerset functor \\(T\\), which maps every set \\(S\\) to its power set \\(2^S\\) -- all subsets of \\(S\\) -- and every function \\(f: A \rightarrow B\\) to the function \\(T(f): 2^B \rightarrow 2^A\\) which maps a subset of \\(B\\) to its preimage under \\(f\\).

So we have \\(T(S) = 2^S\\), and \\(T(f: A \rightarrow B): T(B) \rightarrow T(A)\\). There it is, the image of \\(f\\) goes in the direction opposite to \\(f\\).

This in turn implies that \\(T\\) must "reverse the direction of composition." Suppose \\(f: A \rightarrow B\\), and \\(g: B \rightarrow C\\). Then the only way composition can work is this:

\\[T(f \triangleright g) = T(g) \triangleright T(f)\\]