Another example is a systematic error-correcting codes. The "only" difference between them and checksums is the ability to correct errors, not just detect them. CRC or MD5 can be viewed as systematic code with zero error-correcting ability. Should we mix Reed-Solomon codes and MD5 in one module? I don't think so.