Home

Awesome

Basic Example of using the Zokka compiler

This is a basic example of how the Zokka compiler allows us to override package versions in order to fix a bug in elm/core.

elm/core has a bug which can cause an application to hang forever with certain String operations, as demonstrated in https://github.com/elm/core/pull/1137. We can use Zokka to override the default elm/core with a version of elm/core that fixes this bug.

Building this example

To compare and contrast Elm vs Zokka, we can first use Elm to build this.

Run

elm make src/Main.elm

Now when you open index.html in your web browser of choice, you should see a blank page that is just hanging due to infinite Javascript execution.

Let's switch to Zokka.

zokka make src/Main.elm

Now open index.html again in your web browser. You should see The length of hangsInVanillaElm is 1 appear.

Now go ahead and open elm.json. You'll see that we've added a new field called zokka-package-overrides, which tells us we are overriding elm/core version 1.0.5 with zokka/elm-core-1-0-override version 1.0.0. zokka/elm-core-1-0-override contains the bug fix that we are using. This means everywhere in our dependency tree we replace elm/core:1.0.5 with zokka/elm-core-1-0-override:1.0.0, even in transitive dependencies.

This allows us to take full advantage of all the bug fixes provided in our override package.