Hi! I'm excited about the partial evaluator. However there is one error I've found:
(letrec ((fold (lambda (f x b null? car cdr)
(if (null? x)
b
(f (car x) (fold f (cdr x) b null? car cdr))))))
(fold * x 1 zero? (lambda (x) x) (lambda (x) (- x 1))))
The expansion ends up with the body including lexical-refs to `car' and
`cdr', but they aren't bound in the letrec body.
Andy
--
http://wingolog.org/
