% Install the lambda calculus pretty-printer, as defined in pret-lam.lua.
\installprettytype [LAM] [LAM]
+% An (invisible) frame to hold a lambda expression
+\define[1]\lamframe{
+ % Put a frame around lambda expressions, so they can have multiple
+ % lines and still appear inline.
+ % The align=right option really does left-alignment, but without the
+ % program will end up on a single line. The strut=no option prevents a
+ % bunch of empty space at the start of the frame.
+ \framed[offset=0mm,location=middle,strut=no,align=right,frame=off]{#1}
+}
+
+\define[2]\trans{
+ % Make \typebuffer uses the LAM pretty printer and a sans-serif font
+ % Also prevent any extra spacing above and below caused by the default
+ % before=\blank and after=\blank.
+ \setuptyping[option=LAM,style=sans,before=,after=]
+ % Prevent the arrow from ending up below the first frame (a \framed
+ % at the start of a line defaults to using vmode).
+ \dontleavehmode
+ % Put the elements in frames, so they can have multiple lines and be
+ % middle-aligned
+ \lamframe{\typebuffer[#1]}
+ \lamframe{\Rightarrow}
+ \lamframe{\typebuffer[#2]}
+ % Reset the typing settings to their defaults
+ \setuptyping[option=none,style=\tttf]
+}
+
% A helper to print a single example in the half the page width. The example
% text should be in a buffer whose name is given in an argument.
%