Re composition on the left or the right – there's a very neat approach to this in this textbook:

[Berwick & Keating: Categories and Modules](http://www.cambridge.org/gb/academic/subjects/mathematics/algebra/categories-and-modules-k-theory-view?format=HB&isbn=9780521632768#Et30rSgOpdXmwcab.97)

The authors define two types of categories – *right categories* where **f** followed by **g** is written **gf**, and *left categories* where it is written **fg**. So every category has a "chirality" (left or right), and every functor can be co-chiral or contra-chiral. In particular we have a contra-chiral "mirror functor" that sends every category to its mirror (same objects, same arrows in the same direction, but composition is the other way round).

The motivation for this is they want to deal with bimodules over non-commutative rings, where one ring acts on the left and the other acts on the right. So they need to treat both conventions equally, and have a clean way of switching back and forth.

It took me a little time to understand why one might want to think of chirality as a structural feature of a category relating to how composition is defined, as opposed to a mere "matter of notation". But I do like the way it doesn't arbitrarily choose one convention as normal and the other as perverse.

And it fits with practical computer programming – many languages use both left and right composition (eg in JavaScript functions are written on the left `foo(bar)` while methods are written on the right `bar.foo()`).