the adler32 fold is much easier to understand when the increment is separated into the single step calculation and the reduction