>**Puzzle 111.** Suppose every person has one best friend. We get a database schema as possible. Start with a graph \\(G\\) having one node \\(\textrm{Person}\\) and one edge \\(\textrm{BestFriend}\\) from that node to itself. This gives a free category \\(\mathcal{C} = \mathbf{Free}(G)\\). Use this as our database schema. How many databases built on this schema are possible if

>\[ F(\textrm{Person}) = \\{ \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \\} ?\]

Conceptually speaking, possible outputs of the function, \\(F(\text{BestFriend})\\), when applied to the set, \\(F(\textrm{Person})\\), is like we're producing a repeated product of sets.

\\[

F(\text{BestFriend})(\text{Anna}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Jordan}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Lisa}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Ryan}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

\\]

or using nicer notation,

\\[

\prod_{p \in F(\textrm{Person})}F(\text{BestFriend})(p),

\\]

which would imply a formula of,

\\[

\prod_{\\# \lbrace p \mid p \in F(\text{Person}) \rbrace}{\\# \lbrace q \mid q = F(\text{BestFriend})(p) \rbrace}.

\\]

>\[ F(\textrm{Person}) = \\{ \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \\} ?\]

Conceptually speaking, possible outputs of the function, \\(F(\text{BestFriend})\\), when applied to the set, \\(F(\textrm{Person})\\), is like we're producing a repeated product of sets.

\\[

F(\text{BestFriend})(\text{Anna}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Jordan}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Lisa}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

F(\text{BestFriend})(\text{Ryan}) \rightarrow

\lbrace \textrm{Anna}, \textrm{Jordan}, \textrm{Lisa}, \textrm{Ryan} \rbrace, \\\\

\\]

or using nicer notation,

\\[

\prod_{p \in F(\textrm{Person})}F(\text{BestFriend})(p),

\\]

which would imply a formula of,

\\[

\prod_{\\# \lbrace p \mid p \in F(\text{Person}) \rbrace}{\\# \lbrace q \mid q = F(\text{BestFriend})(p) \rbrace}.

\\]