About 2 - it looks like the morphisms **g** and **h** should really be the same morphism, is there a way to show this? If we had a reverse morphism \$$f^{-1}: b \to a\$$, such that \$$f \cdot f^{-1} = id_b\$$ then this would follow naturally, but we don't. We just have some image of *a*, \$$f: a \to Im(a)\$$, in *b*. So basically we are saying that this equality holds only for a subset of *b*, other entries may have different outcomes from **g** and **h**.

**EDIT**: got it, if _a_ contains mothers with a single child, and _b_ is the set of all mothers, then \$$f.g = f.h\$$, but in general, for other mothers, the first child and the last are not equal.