title: Why are side-effects modeled as monads in Haskell?
body: <p>Could anyone give some pointers on why the impure computations in Haskell are modelled as monads?</p>
  
  <p>I mean monad is just an interface with 4 operations, so what was the reasoning to modelling side-effects in it? </p>