(prog (fun f (lambda x (* x x))) (fun g (lambda a b (+ a b))) (var cat 5) (var dog true) (apply f 4) ) prog / \ fun fun / \ / \ f lambda g lambda / \ / | \ x * a b + / \ / \ x x a b Global Environment [ f [LAMBDA_TAG (lambda x (* x x))] ] [ g [LAMBDA_TAG (lambda a b (+ a b))] ] [ cat [INT_TAG 5] ] [ dog [BOOL_TAG true] ]