This page concerns questions that arose with Elm version 0.17.
For general questions see the main FAQ page.
Where are the official documents about Elm version 0.17?
- A Farewell to FRP: Evan’s blog announcement of Elm 0.17.
- Upgrading to 0.17: The official upgrade guide.
- Introduction to Elm: The official guide to the Elm 0.17 language and core packages.
Others have written about the conversion as well:
Why does elm-make complain “Cannot find module ‘Basics’”?
You need to install the elm-lang/core package.
This often arises when upgrading a package from 0.16 after removing all dependencies from elm-package.json.
Where is the evancz/elm-html package?
It’s now at elm-lang/html. See the upgrade guide about this and other core packages that moved.
Task.perform is used instead.
See some examples of how to convert to Task.perform.
Why am I getting “TypeError: Elm.embed is not a function”?
It used to look like
It’s similar for the
What happened to all the core modules?
Many core modules have been moved out into separate packages, usually under
Graphicsis now in
Trampolineis now in
elm-lang/trampolineand has some renames
Trampoline.done(function instead of constructor)
Trampoline.jump(function instead of constructor)
Mouseis now in
Windowis now in
Keyboardis now in
What is now in elm-community?
Random.Boolhas been removed as it is now in
Random.Functionhas been removed entirely
- It no longer depends on
laszlopandy/elm-console. To run tests in node use:
elementRunneris gone, use
- It no longer depends on
Why am I getting “cannot find module” errors while upgrading a project from 0.16?
Cached or obsolete/renamed package versions may be getting in the way. To get a clean start, try these (from simplest to most drastic):
- Remove all of elm-stuff.
- Remove all the package names from the
dependenciessection of elm-package.json and install packages again as needed. You may have to explicitly install elm-lang/core again.
- Remove all of ~/.elm (on linux or Mac OSX) or ~/AppData/Roaming/elm/package (on Windows).
Does hot-reloading work in elm-reactor now?
Not yet. Work is well underway to improve elm-reactor.
Why does the compiler complain about “I am looking for one of the following things: whitespace” near the beginning of the file?
exposing clause is now required at the beginning of each module.
For example, you now need
module Foo exposing (..) where prior to Elm 0.17 you could use
module Foo where.
Are static ports still available?
No. In Elm 0.17 you’ll have to pass any static data from JS to Elm via the “flags” argument to the
Why does elm-make report “I cannot find module ‘Graphics.Collage’” even though evancz/elm-graphics is installed?
You now need to do
import Collage to get that module. It’s no longer namespaced under