That's actually not true. You can use QuickCheck with "normal" code that has side effects, too, and it's every bit as useful there.