See Introduction to Functors.
Good documentation on the module system and functors is given here:
Discussion of how functors don’t scale that well (pdf)