structure-preserving maps between categories.

morphisms in the category of all (small) categories.

A (covariant) functor F from a category C to a category D, written F : C → D, consists of:

for each object x in C, an object F(x) in D; and

for each morphism f : x → y in C, a morphism F(f) : F(x) → F(y),

such that the following two properties hold:

For every object x in C, F(1x) = 1F(x);

For all morphisms f : x → y and g : y → z, F(g ∘ f) = F(g) ∘ F(f).

A contravariant functor F: C → D is like a covariant functor, except that it "turns morphisms around" ("reverses all the arrows"). More specifically, every morphism f : x → y in C must be assigned to a morphism F(f) : F(y) → F(x) in D. In other words, a contravariant functor acts as a covariant functor from the opposite category Cop to D.