You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Evan Czaplicki 35e07efb85 Merge branch 'master' into dev 6 years ago
compiler It's 2014. 6 years ago
libraries Bump version number to 0.12 6 years ago
runtime Fix opacity issue discovered by @halacsy 6 years ago
server Update version number and description 6 years ago
tests Style changes and making things compatible with new Pattern constructor names 6 years ago
.gitignore Setup QuickCheck and add Literal Parse/Print test 6 years ago
.travis.yml Add basic Travis CI configuration 6 years ago Use the github sanctioned name for this file, based on new facts from @devth 6 years ago
ContributorAgreement.pdf Mess around with wording and switch to using a pdf for the contributor agreement 6 years ago
Elm.cabal Fix build error 6 years ago
How to Request Add note about how to request features to the main repo 6 years ago
LICENSE It's 2014. 6 years ago Update to address problems reported in #457 6 years ago
Setup.hs Start using strict mode for everything 6 years ago Bump version number to 0.12 6 years ago

Learn about the Elm programming language at

Build Status


Arch Linux — follow these directions and then jump to the My First Project section.
OS X 10.9 or XCode 5 — follow these directions before continuing with the platform agnostic directions below.

Platform Agnostic — download the Haskell Platform 2012.2.0.0 or later. Once the Haskell Platform is installed:

cabal update
cabal install elm
cabal install elm-server


To use elm and elm-server you may need to add a new directory to your PATH.

Cabal should tell you where your executables are located upon successful installation. It’ll be something like /home/evan/.cabal/bin which you should append to your PATH variable. See this tutorial if you are new to changing your PATH in Unix/Linux.

My First Project

Now we will create a simple Elm project. The following commands will set-up a very basic project and start the Elm server.

mkdir helloElm
cd helloElm
printf "import Mouse\n\nmain = lift asText Mouse.position" > Main.elm

The first two commands create a new directory and navigate into it. The printf commands place a simple program into Main.elm. Do this manually if you do not have printf. The final command starts the Elm server at localhost:8000, allowing you to navigate to Main.elm and see your first program in action.

Final Notes

The elm package provides some utility functions for working with Elm in Haskell. This can be useful for creating tooling for Elm, and has been useful for projects like the website and elm-get. Email the list if you want to rely on these functions!

If you are stuck, email the list or ask a question in the #Elm IRC channel.