Excellent!

Sure! A connection on a bundle

[tex]P \to B[/tex]

is a functor from the "path groupoid" of the base space B to the "transport groupoid" of the bundle.

Very roughly speaking, it goes like this:

The path groupoid has points of B as objects and paths in B as morphisms.

The transport groupoid has fibers of P as objects and maps betwen fibers as morphisms.

Here's how we get a functor. First send each point x in B to the fiber [tex]P_x[/tex] over that point - that's what our functor does to

*objects*. Then send each path from x to y in B to the "parallel transport" map from [tex]P_y[/tex] to [tex]P_y[/tex] - this is what our functor does to

*morphisms*.

I'm omitting a lot of details. All this is explained more precisely in

these talks of mine, based on a

a paper with Urs Schreiber. But, we go a lot farther: we think of "2-connections" as 2-functors between 2-categories. This lets us do parallel transport not just along curves, but along surfaces.

You can read a lot more about "connections as functors" in my

introduction to bundles and connections. This may be a little less stressful than picking what you want out of a more fancy discussion.

Here's a little puzzle: if we think of a connection as a functor, what's a gauge transformation?