-(defvar *function-counter* 0)
-(defun lookup-function (symbol env)
- (or (lookup-in-lexenv symbol env 'function)
- (lookup-in-lexenv symbol *environment* 'function)
- (let ((name (symbol-name symbol))
- (binding
- (make-binding symbol
- 'function
- (concat "f" (integer-to-string (incf *function-counter*)))
- nil)))
- (push-to-lexenv binding *environment* 'function)
- (push (lambda ()
- (let ((b (lookup-in-lexenv symbol *environment* 'function)))
- (unless (binding-declared b)
- (error (concat "Undefined function `" name "'")))))
- *compilation-unit-checks*)
- binding)))
-
-(defun lookup-function-translation (symbol env)
- (binding-translation (lookup-function symbol env)))
-