Compression algorithms are all about exploiting redundancy. When applying
an expensive Reducer to a redundant source, it may be better to
extract the structural redundancy that is present. LZ78 is a compression
algorithm that does so, without requiring the dictionary to be populated
with all of the possible values of a data type unlike its later
refinement LZW, and which has fewer comparison reqirements during encoding
than its earlier counterpart LZ77. Since we aren't storing these as a
bitstream the LZSS refinement of only encoding pointers once you cross
the break-even point is a net loss.