-<table>
-<tr>
-<td>Scheme (functional part)</td>
-<td>OCaml (functional part)</td>
-<td>C, Java, Pasval<br>
-Scheme (imperative part)<br>
-OCaml (imperative part)</td>
-<tr>
-<td>lambda calculus<br>
-combinatorial logic</td>
-<tr>
-<td colspan=3>--------- Turing complete ---------</td>
-<tr>
-<td>
-<td>more advanced type systems, such as polymorphic types
-<td>
-<tr>
-<td>
-<td>simply-typed lambda calculus (what linguists mostly use)
-<td>
-</table>
+The rule for symbolic atoms is that a single quote `'` followed by any single word that could be a legal variable is a symbolic atom. Thus `'false` is a symbolic atom, but so too are `'x` and `'succ`. For the time being, I'll restrict myself to only talking about the symbolic atoms `'true` and `'false`. These are a special subgroup of symbolic atoms that we call the *booleans* or *truth-values*. Nothing deep hangs on these being a subclass of a larger category in this way; it just seems elegant. Other languages sometimes make booleans their own special type, not a subclass of any other limited type. Others make them a subclass of the numbers (yuck). We will think of them this way.