some docs
composition of functors is of course a functor