Oh yeah, and how does it work for negative number literals? I assume

(f n-1) --> (f (- n 1)) (f n - 1) --> (f (- n 1))

(f n -1) --> (f n -1)

There is one ugly special-case here:

f.-1 ; => (f -1)

-----