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)
-----