Unpacking a comment about sets of morphisms In a comment on this MathOverflow question, Theo Johnson-Freyd states:

OTOH, in any category, if there are monomorphisms $A\to B$ and $B\to A$, then for any $X$ the sets $\operatorname{Hom}(X,A)$ and $\operatorname{Hom}(X,B)$ are isomorphic, by unpacking the word "monomorphism" and applying Schroeder-Cantor-Bernstein (one of those rare results with non-alphabetized names). If this isomorphism could be made natural in $X$, then by Yoneda we would have an isomorphism $A\cong B$. But of course it cannot, in general.

I'm new to category theory and having a hard time unpacking this. I know what a monomorphism is, but it's not clear to me how "unpacking the word monomorphism and applying SCB" implies the set of morphisms between $X$ and $A$ and $X$ and $B$ are isomorphic.
I'm also confused what it means for this isomorphism to be "made natural" in $X$, and then how does the Yoneda lemma show that there is an ismorphism between $A$ and $B$? I can only assume he's referring to the Yoneda embedding, but I still don't see how natural transofmations come in here.
 A: "Unpack" means understanding the definition. A morphism $f : A \to B$ is a monomorphism if for any $g,h : X \to A$, if $f \circ g = f \circ h$, then $g = h$. What are we doing here? We are actually saying that for every $X$, the map $\hom(X,A) \to \hom(X,B)$ given by $g \mapsto f \circ g$ is injective, if you think about it.
So if you get two monomorphisms $A \to B$ and $B \to A$, this implies that you get an injection $\hom(X,A) \to \hom(X,B)$ and an injection $\hom(X,B) \to \hom(X,A)$. Then the Schröder–Cantor–Bernstein says that the sets $\hom(X,B)$ and $\hom(X,A)$ in bijection. Another word for "bijection" is "isomorphism of sets".
Finally we have the naturality comment. The Yoneda embedding tells you that if you have an isomorphism of functors $\hom(-,A) \cong \hom(-,B)$, then $A$ is isomorphic to $B$. What's an isomorphism of functors? It's a natural transformation that has an inverse; in this setting, it is equivalent to a natural transformation $\eta_X : \hom(X,A) \to \hom(X,B)$ which is an isomorphism (bijection) for each $X$. The result above says that if you have monomorphisms $A \to B$ and $B \to A$, then the hom sets $\hom(X,A)$ and $\hom(X,B)$ are isomorphic for all $X$. The problem, as Theo says, is that it will not be possible, in general to choose bijections $\hom(X,A) \cong \hom(X,B)$ which are natural with respect to $X$, so you cannot apply Yoneda's lemma.
A: The main category-theoretic feature here is

For a morphism $f : A \to B$ in a category, the following are equivalent:
  
  
*
  
*$f$ is a monomorphism
  
*$\hom(X, f) : \hom(X, A) \to \hom(X, B)$ is injective for every object $X$
  

which is a straightforward translation of the definitions. SCB is a big set-theoretic result that says

If $S$ and $T$ are sets, and there are injective functions $f : S \to T$ and $g : T \to S$, then there exists a bijection between $S$ and $T$.


Regarding naturality, consider the above formula $\hom(X, f) : \hom(X, A) \to \hom(X, B)$. For every object $X$ of the category, this formula expresses a pair of sets and a function between them.
However, in category theory, we often want more from a variable than simply to be able to plug in objects; we also want the formula to be compatible with the action of the category! Any $g : X \to Y$ should induce a morphism betweenthe data for $X$ and the data for $Y$. In this case, it should give a commutative diagram
$$ \require{AMScd}
\begin{CD}
 \hom(Y, A) @> \hom(Y, f) >> \hom(Y, B)
\\ @VV \hom(g, A) V  @VV \hom(g, B) V
\\  \hom(X, A) @> \hom(X, f) >> \hom(X, B)
\end{CD} $$
Note this goes from $Y$ to $X$ because $X$ is being used a contravariant way.
If this square is commutative for all $X \to y$, then the above formula is natural in $X$.
Note that $\hom(-, A)$ and $\hom(-, B)$ denote functors $\mathcal{C}^\mathrm{op} \to \mathbf{Set}$. This square is precisely the condition for $\hom(-, f)$ to denote a natural transformation from functors $\hom(-, A)$ to $\hom(-, B)$.
I'm not sure what form of the Yoneda lemma you're using, but it should be a fairly immediate consequence that every natural isomorphism $\hom(-, A) \to \hom(-, B)$ is precisely of the form $\hom(-, f)$ where $f$ is an isomorphism.
If we obtained the isomorphisms $\hom(X, A) \to \hom(X, B)$ for every $X$ simply by invoking SCB, there is no reason to think any of the squares above should be commutative for a morphism $X \to Y$.
A: The Yoneda lemma states that the natural transformations $\mathsf{Hom}(-,A)\to F$ are in (natural) bijection with the elements of $F(A)$ where $F$ is a functor $\mathcal C^{op}\to\mathbf{Set}$. A particular corollary of the Yoneda lemma is to choose $F=\mathsf{Hom}(-,B)$, which then gives that the natural transformations $\mathsf{Hom}(-,A)\to\mathsf{Hom}(-,B)$ correspond to arrows $A\to B$. You can (and should) easily prove that this (preserves and) reflects isomorphisms. (More generally, any full and faithful functor reflects isomorphisms, and you should prove this too.)
The Yoneda lemma says nothing about arbitrary functions between the sets $\mathsf{Hom}(X,A)$ and $\mathsf{Hom}(X,B)$ for any given $X$. The Yoneda lemma only talks about natural transformations between functors $\mathsf{Hom}(-,A)$ and $\mathsf{Hom}(-,B)$. When we say $\mathsf{Hom}(X,A)\cong\mathsf{Hom}(X,B)$ natural in $X$, what we really mean is that the functors $\mathsf{Hom}(-,A)$ and $\mathsf{Hom}(-,B)$ are (naturally) isomorphic.
Now, you can either work out the details directly (or, using more general results that you probably haven't covered yet, note from the fact that $\mathsf{Hom}(X,-)$ preserves limits,) that $\mathsf{Hom}(X,-)$ takes monomorphisms to monomorphisms. The latter are monomorphisms in the category $\mathbf{Set}$ which are just injective functions. Thus given monomorphisms $A\to B$ and $B\to A$ and picking any object $X$, Shroeder-Cantor-Bernstein states that $\mathsf{Hom}(X,A)$ is in bijection with $\mathsf{Hom}(X,B)$. Indeed, there will usually be an infinite number of bijections. However, there is no reason that the bijection you chose would be a component of a natural isomorphism $\mathsf{Hom}(-,A)\cong\mathsf{Hom}(-,B)$, nor is there any reason to believe that any choice of bijections would give rise to a natural isomorphism. If some choice does give rise to a natural isomorphism, then, because the Yoneda embedding reflects isomorphisms, it would imply $A\cong B$. If $A\cong B$ is known, then, because all functors preserve isomorphisms, the Yoneda embedding would immediately give you a specific choice of bijection $\mathsf{Hom}(X,A)\cong\mathsf{Hom}(X,B)$ for any $X$, namely the $X$ component of the embedding of the isomorphism $A\cong B$.
