Elm is a functional reactive language for web programming. To learn the basics, please check out the recently updated interactive examples (<a href="http://elm-lang.org/Examples.elm" rel="nofollow">http://elm-lang.org/Examples.elm</a>) and documentation (<a href="http://elm-lang.org/Documentation.elm" rel="nofollow">http://elm-lang.org/Documentation.elm</a>). This project is the result of my undergraduate thesis, so it is still a work in progress. Also, I know compiling to HTML, CSS, and JS can be controversial, so please look at the examples and try using Elm yourself before you make up your mind.<p>The Elm source code is available at github (<a href="https://github.com/evancz/Elm" rel="nofollow">https://github.com/evancz/Elm</a>), and the compiler/server is available through Hackage (<a href="http://hackage.haskell.org/package/Elm" rel="nofollow">http://hackage.haskell.org/package/Elm</a>).<p>See these install instructions (<a href="https://github.com/evancz/Elm/blob/master/README.md" rel="nofollow">https://github.com/evancz/Elm/blob/master/README.md</a>) to get Elm running on your machine. I have successfully installed on fresh copies of Ubuntu 11.10 and 12.04, Debian, and Linux Mint. Others have successfully installed with Win7 and OSX Lion. If you are having trouble that is not resolved by the install instructions, please ask me here and I'll do my best to help!<p>P.S. As of this release, Elm has support for ADTs (which explains the representation of strings).