Keith's string diagram [#18](https://forum.azimuthproject.org/discussion/comment/19760/#Comment_19760) is epiphanic! And huge thanks to @John ([#15](https://forum.azimuthproject.org/discussion/comment/19757/#Comment_19757) [#16](https://forum.azimuthproject.org/discussion/comment/19758/#Comment_19758)) and @Chritopher ([#10](https://forum.azimuthproject.org/discussion/comment/19744/#Comment_19744)) for the methodological clarifications! :-bd Now that I (think I) have a better understanding, I'll write down some tips in case other beginners might find them useful.

First, \$$\mathrm{hom}(c,c')\$$ and \$$\mathrm{hom}(d,d')\$$ are objects in \$$\mathbf{Set}\$$ which should be diagrammatically dots, so the squares in this lecture are _not_ diagrams in \$$\mathbf{Set}\$$. They are not diagrams in \$$\mathcal{C} \times \mathcal{C}\$$ or \$$\mathcal{C}^{op} \times \mathcal{C}\$$ either, for objects in those categories should be pairs. In fact, those squares we have been using are more likely still residing in \$$\mathcal{C}\$$ (realizing this swept away a lot of my puzzles!). That is, we are talking about \$$\mathcal{C}^{op} \times \mathcal{C} \to \mathbf{Set}\$$ directly via diagrams in \$$\mathcal{C}\$$ rather than by illustrating new diagrams in \$$\mathcal{C}^{op} \times \mathcal{C}\$$ or \$$\mathbf{Set}\$$. As such, I find it easier to conceive the hom-functor dynamically as a particular *perspective* (i.e. the \$$\mathbf{Set}\$$-perspective) to \$$\mathcal{C}\$$ which helps us establish a certain configuration (like the one in Keith's string diagram).

Second, since now we are in \$$\mathcal{C}\$$ (which is any category), if we forget about the hom-functor temporarily and only think about \$$\mathcal{C}\$$, there may well exist various independently defined arrows \$$d \to d'\$$, for \$$d\$$ and \$$d'\$$ are merely two random objects after all. But once we put on the hom-functor spectacles, we are taken into a different (and more restricted) scenery, where the possibly independently existing \$$d \to d'\$$ arrows are no longer important (or even visible), because the hom-functor â€“ which must map/preserve morphisms â€“ needs to establish an _100% secure input-output relation_ in the \$$\mathbf{Set}\$$-perspective between \$$\mathrm{hom}(c,c')\$$ and \$$\mathrm{hom}(d,d')\$$, hence @John's words in the lecture:

>This function should take any morphism \$$h \in \mathrm{hom}(c,c')\$$ and give a morphism in \$$\mathrm{hom}(d,d')\$$.

Thus, the question is *not* whether there might be \$$d \to d'\$$ arrows in \$$\mathcal{C}\$$ or not (which is a valid question for its own sake but simply uninteresting in our hom-functor discourse), but more restrictively given any \$$c \to c'\$$ arrow as input (together with the relevant morphisms \$$f, g\$$), whether or not we can _confidently guarantee_ at least _one_ such arrow as output. If we _can_ have such a guarantee, then it means our hom-functor at hand successfully preserves morphisms and qualifies as a true functor. The obvious way to achieve this is (like everyone above has pointed out) via the composition \$$d \to c\to c' \to d'\$$ (i.e. \$$gâˆ˜hâˆ˜f\$$), which in turn requires the additional \$$op\$$-trick on the first component of the \$$\mathcal{C}\$$-morphism pair \$$\langle f, g\rangle\$$ (I find the angle bracket notation easier as otherwise I might mistake \$$f, g\$$ for weirdly named \$$\mathcal{C}\$$-objects).

What Keith's string diagram helped me realize (by completely omitting the bottom-side of the square) is precisely the point that we do not care whether or not there exist independent \$$d \to d'\$$ arrows but merely want to _determine a dependent one_ via manipulating \$$f\$$, \$$h\$$, and \$$g\$$.