(test-prog-stdout '((let () ((lambda (f) (f "foo")) print) 0)) "foo")
(test-expr '((lambda (f) (f 3 3)) (lambda (x y) (bool->int (= x y)))) 1)
(test-expr '(bool->int ((lambda (f) (! (f 2 3))) =)) 1)
(test-prog-stdout '((let () ((lambda (f) (f "foo")) print) 0)) "foo")
(test-expr '((lambda (f) (f 3 3)) (lambda (x y) (bool->int (= x y)))) 1)
(test-expr '(bool->int ((lambda (f) (! (f 2 3))) =)) 1)