On Thu, Jun 17, 2021 at 01:04:36AM +0200, Emanuel Berg via Users list for the GNU Emacs text editor wrote: > Stefan Monnier via Users list for the GNU Emacs text editor wrote: > > >>>> Doing (foo x y) will *never* change "the variable x" -- unless > >>>> foo is a macro/special form. > >>> > >>> Just to show that you should never say never: > >>> > >>> (let* ((x 5) > >>> (y 6)) > >>> (cl-flet ((foo (a b) (setq x (+ a b) y (* a b)) (- a b))) > >>> (list (foo x y) x y))) > >> > >> Hey, that's cheating :-) > > > > Impredicativity is borderline, indeed. > > Impredicativity, what's that, recursion? Kind of. But different [1] Cheers [1] https://en.wikipedia.org/wiki/Impredicativity - t