I suppose most purely functional programming languages have feature to control side-effects in function, such like monads in Haskell, but Elm doesn\'t require such feature d