% -*- Mode: LaTeX -*-

\newmath\inst{\iota}
\newmath\loc{\ell}
\newmath\val{\nu}
\newmath\env{\rho}
\newmath\store{\sigma}
\newmath\susp{\delta}
\newmath\work{\omega}
\newmath\thunk{\kappa}
\newmath\flag{\theta}
\newmath\append{\mbox{$\,+\!\!+\,$}}
\newmath\tmap{\tau}
\newmath\imap{\alpha}

\newmath\insts{\mbox{$\iota{}s$}}
\newmath\envs{\mbox{$\rho{}s$}}
\newmath\susps{\mbox{$\delta{}s$}}
\newmath\works{\mbox{$\omega{}s$}}

\newmath\acc{\Diamond}
\newmath\istream{\fbx{code}}
\newmath\stack{\fbx{stack}}
\newmath\workq{\fbx{workq}}
\newmath\heap{\fbx{heap}}
\newmath\status{\fbx{status}}
\newmath\res{\fbx{ret}}

\newmath\main{\fbx{main}}
\newmath\expone{\fbx{apply-1}}
\newmath\expzero{\fbx{apply-0}}

\newmath\ftag[1]{\langle\fbx{full}\;#1\rangle}
\newmath\etag[1]{\langle\fbx{empty}\;#1\rangle}
\newmath\ttag[1]{\langle\fbx{thunk}\;#1\rangle}
\newmath\dtag[1]{\langle\fbx{defer}\;#1\rangle}
\newmath\cval[1]{\langle\fbx{clsr}\;#1\rangle}
\newmath\gval[1]{\langle{#1}\rangle}
\newmath\state[6]{\langle{#1}\hm{#2}\hm{#3}\hm{#4}\hm{#5}{#6}\rangle}

\newmath\texp[1]{\bbx{TExp}\dlb#1\drb}
\newmath\tid[1]{\bbx{TId}\dlb#1\drb}

\newmath\sched{\fbx{schedule}}
\newmath\eval[1]{\fbx{eval}(#1)}
\newmath\touch[1]{\fbx{touch}(#1)}
\newmath\rtouch[1]{\fbx{rtouch}(#1)}
\newmath\lda[1]{\fbx{load}(#1)}
\newmath\ldc[1]{\fbx{loadc}(#1)}
\newmath\ldi[2]{\fbx{loadi\_${#1}$}(#2)}
\newmath\sta[1]{\fbx{store}(#1)}
\newmath\tka[1]{\fbx{take}(#1)}
\newmath\fullerr[1]{\fbx{storerr}(#1)}
\newmath\pushenv[1]{\fbx{pushenv}(#1)}
\newmath\popenv{\fbx{popenv}}
\newmath\primapp[2]{#1(#2)}
\newmath\intapp[2]{\fbx{ap}(#1,#2)}
\newmath\switch[2]{\fbx{switch}(#1,#2)}
\newmath\dispatch[2]{\fbx{dispatch}(#1,#2)}
\newmath\print{\fbx{print}}

\newmath\enter[1]{\fbx{enter}(#1)}
\newmath\update[1]{\fbx{update}(#1)}
\newmath\setenv[1]{\fbx{setenv}(#1)}
\newmath\pushwork[2]{\fbx{pushwork}(#1,#2)}
\newmath\allocenv[1]{\fbx{allocenv}(#1)}
\newmath\copyenv[1]{\fbx{copyenv}(#1)}
\newmath\pap[2]{\fbx{pap}(#1,#2)}
\newmath\fap[2]{\fbx{fap}(#1,#2)}
\newmath\comapp[2]{\fbx{apply}(#1,#2)}
\newmath\comfap{\fbx{fapply}}
\newmath\makeclsr[2]{\fbx{makeclsr}(#1,#2)}

\newmath\whnf[1]{\lbx{W}(#1)}
\newmath\thnf[1]{\tbx{W}(#1)}
\newmath\wconst{\bullet}
\newmath\wand{\bx{\&}}
\newmath\tand{\tbx{\&}}
\newmath\te[1]{{\bf{}TE}\dlb#1\drb}
\newmath\ts[1]{{\bf{}TS}\dlb#1\drb}

\newenvironment{evalrule}[1]{%
\noindent\begin{tabular}{@{}c}
\makebox[\hlessmm][l]{#1}\\}{\end{tabular}}
