Elm 0.16 Released!

Yesterday Elm 0.16 was released. This is an exciting step forward for Elm and we’ve got you covered!

Course Updates

We’ve made the following updates to both our Elm: Building Reactive Web Apps and Elm: Signals, Mailboxes, & Ports courses:

  • The videos now have callouts where the syntax has changed (It’s minor. See notes below.)
  • The course notes have been updated with explanations of the changes.
  • All the code in the code bundle has been upgraded to be compatible with Elm 0.16.
  • The cheat sheets have all been revised to reflect the new syntax.

How Does This Impact Me?

If you’re currently working through the Elm course, you have two options:

  1. You can simply continue on with the course using 0.15 and the code bundle you’ve already downloaded. After the course, you’ll want to check out the syntax changes summarized below before writing your own Elm app.
  2. Or you can pause the course, upgrade to 0.16 (see the updated notes in the course setup instructions), download a new code bundle, review the Elm syntax changes noted below, and then carry on with the course!

Elm 0.16 Updates

As it pertains to the topics we teach in our current Elm courses, there are three changes necessary to be compatible with Elm 0.16:

  • Most important, the syntax for updating a record has changed from a backward arrow (<-) to an equal sign (=). It’s a trivial change meant to make the syntax a bit friendlier as the backward arrow led to some confusion and weird code texture. Unfortunately, using the backward arrow in 0.16 gives an error so you’ll need to do a search and replace.

  • The compiler now detects "incomplete pattern matches" which happen when a "case" expression doesn’t handle all possible cases. Turns out the compiler caught a benign scenario in our code where we should have added a wildcard case. In the Elm Signals course, see the notes in Section #9 "Designing With Actions" for more details.

  • Elm 0.16 requires updated versions of the elm-html and start-app packages, so we simply have to install the latest versions of those packages.

These changes are fairly minor and we think you’ll find the transition to be very smooth.

So what’s the big deal about this release?

Well, we’re really excited about the improved error messages and improved performance that will make Elm that much nicer to work with going forward. The Elm compiler is setting a new standard for usability and we continue to be impressed by how much care Evan and the community take with Elm! See the release notes for the full details.

We hope you're continuing to have fun with Elm!