Elm uses the functional reactive programming style and purely functional graphical layout to build user interface without any destructive updates. It enforces a “model view update” architecture, where the update has the following signature: (action, state) -> state http://www.appventure.me/2016/10/14/reswift-pattern/