let r = __locals__ with x+y=x*y; end;
> r;
[(+)=>(+)]
> reduce_with r (a+b);
a*b
----
> reduce_with [(+)=>(+)] (a+b); // as expected ;-)
a+b
> reduce_with [(+)=>(*)] (a+b);
a*b
How can it work with "r" in the first place? Presumably a display mistake in that the second (+) is not ===(+). Well, I have no idea ... :)
BTW, just for reporitng ...
> reduce_with [(+)=>(3)] (a+b);
Segmentation fault (core dumped)