% % Some utilities for formatting (extended) lambda calculus and % transformations. % \startuniqueMPgraphic{box} path a, b; % Create a rectangle of the full size a := unitsquare xyscaled(\overlaywidth,\overlayheight); % Randomize it a bit b := a randomized 10pt ; % And draw it drawoptions (withpen pencircle scaled .75mm withcolor black) ; draw b; \stopuniqueMPgraphic \defineoverlay[box][\uniqueMPgraphic{box}] % Define \{start,stop}boxed with a nice metapost box around it. \defineframedtext[boxed][background=box,frame=off] % A boxed variant with the width forced to page width. This is used in % \startrans, since the content somehow doesn't scale the box around it % properly. \defineframedtext[wideboxed][background=box,frame=off,width=\textwidth] % Install the lambda calculus pretty-printer, as defined in pret-lam.lua. \installprettytype [LAM] [LAM] % Define \startlambda \stoplambda \definetyping[lambda][option=LAM,style=sans,before=\startboxed,after=\stopboxed] % Define \lam{} (since \lambda is taken) \definetype[lam][option=LAM,style=sans] % Install the transformation pretty-printer, as defined in pret-trans.lua. \installprettytype [TRANS] [TRANS] % Define \starttrans \stoptrans \definetyping[trans][option=TRANS,style=normal,before=\startwideboxed,after=\stopwideboxed] % Install the haskell pretty-printer, as defined in pret-haskell.lua. \installprettytype [HASKELL] [HASKELL] % Define \starthaskell \stophaskell \definetyping[haskell][option=HASKELL,before=\startboxed,after=\stopboxed] % Define \hs \definetype[hs][option=HASKELL,style=mono]