%%% Abstract syntax of the (untyped) lambda calculus
%%%
%%% AUTHOR: Gary T. Leavens

module abstract_syntax.
  
  unparse (var X) X.
  unparse (ap M N) AS :-
  	unparse M MS,
        unparse N NS,
  	AS is "(" ^ MS ^ " " ^ NS ^ ")".
  unparse (lambda I M) AS :-
  	unparse M MS,
  	AS is "(\\" ^ I ^ "." ^ MS ^ ")".
