Thanks, Brad! I re-ran my job on machine with 1.28 GB, and got almost the same: 112648201888 bytes allocated, and still 3204 collections.
Why do you think 112GB allocated is incorrect? This is the memory "allocated" by the program. It is not the maximal live data used by the program. Of course most of the allocated data is reclaimed by the garbage collector. The "allocated bytes" statistic indicates the sum of all the size of objects allocated. For example, on a 32 bit machine, each call to "cons" counts for 24 bytes (each field of the pair takes 4 bytes (header, car, cdr) and there is an extra factor of 2 for the space reserved in the to-space so that the garbage collector can copy the pair if it is live when the GC is performed).
Marc