(define-datatype procval procval? (closure (ids (list-of symbol?)) (body expression?) (env environment?)) ) (define apply-procval (lambda (proc args) (cases procval proc (closure (ids body env) (eval-expression body (extend-env ids args env))) ) ) )