(define (eval form module) (cond ((const? form) form) ((id? form) (lookup form module)) ((list? form) (let ((len (list-len form)) (ptr (list-ptr form))) (eval-list ptr len module))))) (define (eval-list ptr len module) (let ((first ptr[0])) (cond ((funcall? first) (let ((fun-ptr (funcall-ptr first)) (argv (eval-args ptr len module))) (funcall fun-ptr argv))) (()))))