The unquoted arguments in process forms are evaluated
in the wrong process:
>(define a 0)
>(run (ls ,(begin (set! a 1) '-l)))
>a
0
,expand shows the problem:
,expand (run (ls ,(begin (set! a 1) '-l)))
'(wait (fork (lambda () (apply exec-path (cons 'ls
(cons (begin (set! a 1) '-l) '()))))))
--
Martin