\texonly
\newcommand{\meta}[1]{{\noindent\mbox{\textrm{$\langle$#1$\rangle$}}}}
\endtexonly
\htmlonly
\newcommand{\meta}[1]{$<$#1$>$}
\endhtmlonly
\newcommand{\hyper}[1]{\meta{#1}}
\newcommand{\hyperi}[1]{\hyper{#1$_1$}}
\newcommand{\hyperii}[1]{\hyper{#1$_2$}}
\newcommand{\hyperj}[1]{\hyper{#1$_i$}}
\newcommand{\hypern}[1]{\hyper{#1$_n$}}
\texonly
\newcommand{\var}[1]{\noindent\mbox{\textnormal{\textit{#1}}}}
\endtexonly
\htmlonly
\newcommand{\var}[1]{\textnormal{\textit{#1}}}
\endhtmlonly
\newcommand{\vari}[1]{\var{#1$_1$}}
\newcommand{\varii}[1]{\var{#1$_2$}}
\newcommand{\variii}[1]{\var{#1$_3$}}
\newcommand{\variv}[1]{\var{#1$_4$}}
\newcommand{\varj}[1]{\var{#1$_j$}}
\newcommand{\varn}[1]{\var{#1$_n$}}

\newcommand{\defining}[1]{{\emph{#1}}}

\newcommand{\exprtype}{syntax}

\newcommand{\dotsfoo}{\ldots\texonly{\thinspace}\endtexonly}

\let\code=\texttt

\newcommand{\goesto}{%
\texonly{\hbox{$\longrightarrow$}}\endtexonly%
\htmlonly{\code{-->}}\endhtmlonly%
}

\newcommand{\xform}{%
\texonly{\hbox{$\Longrightarrow$}}\endtexonly%
\htmlonly{\code{--->}}\endhtmlonly%
}

\newcommand{\arbno}[1]{{{#1}$^*$}}
\newcommand{\hack}{Scheme~48}

\newcommand{\alt}{$\vert$}

\newcommand{\ok}{\discretionary{}{}{}}

\newcommand{\syn}[1]{{\noindent\mbox{\textrm{$\langle$#1$\rangle$}}}}

\newenvironment{example}{\begin{alltt}}{\end{alltt}}

\newcommand{\ob}{\char"7B}
\newcommand{\cb}{\char"7D}