[Haskell-beginners] explaining effects (was: Doubts about functional programming paradigm)