Side effects make it difficult to reason about code behavior and to perform formal proofs of correctness.