Make int-value and rational-value substructs of number-value
Make use of extra destructuring for better arg checking
Remove duplicate statement struct
Munge reader stuffs