Add low-level class support, stub of high level OOP wrapper
diff --git a/doc/lisp_reference/lisp_reference.tex b/doc/lisp_reference/lisp_reference.tex
index 78c6255..fa07548 100644
--- a/doc/lisp_reference/lisp_reference.tex
+++ b/doc/lisp_reference/lisp_reference.tex
@@ -398,6 +398,42 @@
   empty.
 \end{defin}
 
+\section{Strings \& Symbols}
+
+\begin{defin}{(\optlist{\func{string->symbol}\\\func{symbol->string}} \param{value})}%
+  \index{string->symbol}\index{symbol->string} Return a new
+  \ret{symbol} or \ret{string} representing \param{value},
+  respectively; or \ret{\nil} if \param{value} is not of the specified
+  type.
+\end{defin}
+
+\begin{defin}{(\func{concat} \param{strings} \more)}\index{concat}
+  Return \ret{a new string} containing the content of each of the
+  strings \param{strings} one after the other.
+\end{defin}
+
+\begin{defin}{(\func{gensym})}\index{gensym}
+  Return a \ret{new, unique symbol}. Useful in macros.
+\end{defin}
+
+\section{Object Oriented Programming}
+
+\begin{defin}{(\func{make-class} \param{type} \param{num-members})}\index{make-class}
+  Create a \ret{new class instance} of type \param{type} with slots
+  for \param{num-members} members. This is a low-level function that
+  should not be often used.
+\end{defin}
+
+\begin{defin}{(\func{class-member} \param{class} \param{index})}\index{class-member}
+  Get the \ret{member variable at index \param{index}} in the class
+  instance \param{class}, or \ret{\nil} if \param{index} out of range.
+\end{defin}
+
+\begin{defin}{(\func{set-class-member} \param{class} \param{index} \param{value})}\index{set-class-member}
+  Set the member variable at index \param{index} in the class instance
+  \param{class} to \param{value}.
+\end{defin}
+
 \section{Input \& Output}
 
 \begin{defin}{