By the way, Keith, you're writing \\(g \circ h\\) to mean "do first \\(g\\) and then \\(h\\)", while most category theorists - and in particular me - use it to mean "do first \\(h\\) and then \\(g\\)", just as we do for functions, where

\[ (g \circ h) (x) = g(h(x)) . \]

I mention this just because it's possible to get very confused when different people are using different systems without knowing it.

Computer scientists sometimes use \\(g ; h\\) to mean "do first \\(g\\) and then \\(h\\)", and that's a nice notation where the first thing comes first yet we don't get confused.

\[ (g \circ h) (x) = g(h(x)) . \]

I mention this just because it's possible to get very confused when different people are using different systems without knowing it.

Computer scientists sometimes use \\(g ; h\\) to mean "do first \\(g\\) and then \\(h\\)", and that's a nice notation where the first thing comes first yet we don't get confused.