[Haskell-beginners] How works this `do` example?