Consider a set $E$. The theory of $E$-exceptions is an algebraic theory given by:
- for every $e \in E$ a nullary operation symbol $\mathsf{raise}_e$
- no equations.
Given a set $X$, we may consider the free algebra $A$ for the theory of $E$-exceptions, with generators from $X$. The algebra $A$ contains everything that we can generate from the generators and the operation symbols. Since our operation symbols are nullary (do not take any arguments), $A$ will contain precisely the generators $X$ and, for each $e \in E$, the operation symbol $\mathsf{raise}_e$. (There are no equations, so we need not quotient at all.) It is not surprising that we would write "$X + E$" for $A$.
In general, an algebra for the theory of $E$-exceptions is given by:
- a carrier set $C$
- for every $e \in E$, an element $r_e \in C$ which interprets the nullary operation $\mathsf{raise}_e$.
A particulary strange way to create an algebra is to take
$$C = X + E$$
and for each $e \in E$ an element $x_e \in C$. This seems strange only untilwe notice that such an algebra is precisely the same thing as an exception handler. Think of $C$ as the set of "computations" that may either return a "final result" from $X$, or raise an exception from $E$. An exception handler takes an element $c \in C$ and explains how to replace each exception $\mathsf{raise}_e$ with another computation $x_e \in C$ (note: an exception handler may re-raise exceptions, which is why $x_e \in C$ instead of just $x_e \in X$).
$\newcommand{\raise}[1]{\mathsf{raise}_{#1}}$
Supplemental: Perhaps a concrete example will help. A model is given by a set $C$ and a mapping of the constant symbols $\raise{e}$ to elements of $C$.
Let us take $E = \{a,b\}$ and $X = \{u, v, w\}$. Then the free model is given by the carrier
$$X + E = \{u, v, w, \raise{a}, \raise{b}\}$$
together with the mapping
$$\raise{a} \mapsto \raise{a}, \quad \raise{b} \mapsto \raise{b}.$$
The model $\overline{X + E}$ is not fixed, it depends on the mapping $x : E \to X + E$. For example, if we take $x_a = u$ and $x_b = \raise{a}$ then we get the model $\overline{X + E}$ whose carrier is $X + E$ and
$$\raise{a} \mapsto u, \quad \raise{b} \mapsto \raise{a}.$$
Another possibility for $\overline{X + E}$ is to take $x(a) = \raise{b}$ and $(b) = \raise{a}$. This will not be the same as the free model because it exchanges the meaning of $\raise{a}$ and $\raise{b}$. If we take $x(a) = \raise{a}$ and $x(b) = \raise{b}$ then $\overline{X + E}$ is equal to the free model.