The concrete types described in
\xref[\instead{sections}]{sec:structures.common} and
-\ref{sec:structures.root} are declared by the header file @|<sod/sod.h>|.
+\ref{sec:structures.root} are declared by the header file
+@|<sod/sod.h>|.\footnote{%
+ This isn't completely true. The @|SodObject| and @|SodClass| structures
+ are defined in a header called @|<sod/sod-base.h>|, which is generated by
+ the Sod translator; but @|<sod/sod.h>| includes @|<sod/sod-base.h>|, so you
+ can forget about this detail.} %
The definitions described in \xref{sec:structures.layout} are defined in the
header file generated by the containing module.
Instance chains contain slots and vtable pointers, as described below. All
instances have the basic structure of a @|struct sod_instance|.
-\begin{describe}{type}[struct sod_instance]
+\begin{describe}{ty}[struct sod_instance]
{struct sod_instance \{ \\ \ind
const struct sod_vtable *_vt; \-\\
\};}
\end{description}
\end{describe}
-\begin{describe}{type}[struct sod_vtable]
+\begin{describe}{ty}[struct sod_vtable]
{struct sod_vtable \{ \\ \ind
const SodClass *_class; \\
size_t _base; \-\\
\end{description}
\end{describe}
-\begin{describe}{type}[struct sod_chain]
+\begin{describe}{ty}[struct sod_chain]
{struct sod_chain \{ \\ \ind
size_t n_classes; \\
const SodClass *const *classes; \\