To be evaluated using my prolog lambda calculus evaluator: https://gist.github.com/madidier/bfb9a936550c92d7d63fea49da90253d Left = x -> l -> r -> l(x), Right = x -> l -> r -> r(x), Id = x -> x, Const = a -> b -> a, Main = [Right, "lol", [Const, ""], Id], parse(Main, AST), deepEval(AST, :Res), writeln(Res).