\section[Caveats]{Caveats: bugs and foibles}

As mentioned in \sectionref{clunky-implementation}, the initial
implementation of this literate-programming system is delicate at
best.

\begin{enumerate}
\item
Environment-commands should be on lines of their own, and preferably
start in column~1; the latter is especially important for verbatim
environments.

\item
The line numbers reported with errors stand a fair chance of being
wrong or even laughably irrelevant.  \LaTeX{} doesn't report errors in
terms of their original source anyway at all... (urgh)

\item
\tr{\Define}-itions (incl.~the built-in ones for \Haskell{},
\LaTeX{}, etc.) are expanded inside \tr{\tr} and friends.

\item
You can get confused \tr{\items} (in enumerations, etc.) if you have:
\begin{verbatim}
\item[... stuff here... ]   ...................... ]
 right bracket on the same line -------------------^
\end{verbatim}
The solution (and it's better style anyway) is to put \tr{\items} on
lines of their own.  This is a vestige of the implementation...

\item
Don't put \tr{\index} commands inside footnotes.  There are probably
some other related restrictions... (ToDo)

\item
Tabs in code will be expanded to spaces.  This matters only if you
have tabs in string constants, or some such (which you shouldn't,
because it's hard for the reader of your code to see what you've done;
use \tr{\t} or the equivalent).

\item
If you use the cross-referencing (\tr{-D}, I think), you have the
annoying feature of cross-referencing to things very near by, even on
the same page.  I don't know how to stop this.
\end{enumerate}
