Por que os efeitos colaterais são modelados como mônadas em Haskell?

Alguém poderia dar algumas dicas sobre por que os cálculos impuros em Haskell são modelados como mônadas?

Quero dizer, a mônada é apenas uma interface com 4 operações, então qual foi o motivo para modelar os efeitos colaterais nela?