* module/ice-9/eval.scm (primitive-eval): Expand out the call to
make-general-closure, so that make-general-closure becomes
well-known. Now eval has no more free variables!
(let ((proc
(if (null? tail)
(make-fixed-closure eval nreq body env)
(let ((proc
(if (null? tail)
(make-fixed-closure eval nreq body env)
- (if (null? (cdr tail))
- (make-rest-closure eval nreq body env)
- (apply make-general-closure env body nreq tail)))))
+ (mx-bind
+ tail (rest? . tail)
+ (if (null? tail)
+ (make-rest-closure eval nreq body env)
+ (mx-bind
+ tail (nopt kw inits alt)
+ (make-general-closure env body nreq rest?
+ nopt kw inits alt)))))))
(let lp ((meta meta))
(unless (null? meta)
(set-procedure-property! proc (caar meta) (cdar meta))
(let lp ((meta meta))
(unless (null? meta)
(set-procedure-property! proc (caar meta) (cdar meta))