A functor F:C→D from a category C to a category D is said to be full if, for each pair of objects, x,y ∈ C, the function,
F:C(x,y)→D(F(x),F(y))
between hom sets is surjective.
A functor F:C→D from a category C to a category D is said to be faithful if for each pair of objects x,y∈C, the function
F:C(x,y)→D(F(x),F(y)) between hom sets is injective.
What I am unsure about is, for categories C and D, can you have a functor that is faithful but not full in both directions? That is, a category F:C→D and G:D→C, such that both F and G are faithful but not full.
In particular, are there any simple examples of this?
Lots of examples. Here’s two.
Take $C=D=\mathbf{Set}$, and $F=G$ the direct image functor, taking a set $X$ to its power set $P(X)$, and taking a function $f\colon X\to Y$ to the direct image function $\overline{f}\colon P(X)\to P(Y)$ sending $A\subseteq X$ to $f(A)=\{f(a)\mid a\in A\}\subseteq Y$. This is faithful: if $f\neq g$, then there exists $x\in X$ such that $f(x)\neq g(x)$; then $\overline{f}(\{x\})=\{f(x)\}\neq\{g(x)\}=\overline{g}(\{x\})$. It is not full, because the direct image functions always take singletons to singletons, but there are certainly functions $P(X)\to P(Y)$ (for $X$ and $Y$ nonempty) that take singletons in $P(X)$ to things that are not singletons in $P(Y)$.
For an example with $C\neq D$, let $C=\mathbf{Set}$, $D=\mathbf{Group}$, let $F\colon C\to D$ be the free group functor (taking $X$ to the free group on $X$), and let $G\colon D\to C$ be the underlying set functor, taking a group to its underlying set. Then both $F$ and $G$ are faithful but not full. This can be generalized by replacing $D$ with the category of all rings with unity, semigroups, abelian groups, and vector spaces, among others.