I just found out that function arguments cannot be used as local variables. For example:
(x = x + 1;
x^2 + x - 7)
is illegal because x is replaced by the argument value and say f would try 1 = 1+1.
Any insight on why that is? Is the only solution to use Module or Block local variables?