you could also double the range by using positive and negative
fixnumss instead of just the positive ones. (offset the result
by adding a constant most-positive-fixnum to what you stored.)
This doesn't get you to 10^6 in this system, but it may help.