Reflex
Interactive programs without callbacks or side-effects
...Reflex components are modular and reusable. If your requirements change, your app can quickly and easily be reworked. The modularity of Reflex lets you iterate quickly, without wasting code. Reflex has been built to seamlessly support interfaces on desktop, mobile, web, and other platforms, all in Haskell. Regardless of your platform needs, Reflex lets you take your team and your code with you. Reflex is the key to writing self-updating user interfaces. Develop efficiently no matter how many times you pivot. One team, one code base, every platform. ...