opvasger/amr/3.0.0

NOTE: the latest version is 3.1.1

Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: github.com/opvasger/amr is gone (deleted or private); Software Heritage not asked yet (this run's --swh-calls were used up); no fork with tag 3.0.0 found (32 same-name repos checked); no cached copy. Use another version.

Details

Elm AMR

Automatic message-replay for Elm!

This project sets out to solve the same problems as "hot-reloading" known from JavaScript and other langugages. As the Elm architecture makes you model your interactions (usually dubbed Msg), I've designed the programs in this module to record those interactions, and then replay them instantly when the program is reloaded. This enables some very nice features:

  1. You can change any part of your program (with the exception of modifying/removing messages) without breaking replay. Even if you modify/remove a message, it will still replay every message up until the first that is not part of the program anymore.
  2. Replaying messages rather than storing the state of your application makes for very interactive programming, where you can change bits of logic and instantly see the results of the change you made without having to get the application back into the right state.
  3. This approach has no weird edge-cases that can cause confusion during development. It simply remembers the messages that flow through your program and replay them without performing commands. This makes for reliable and immediate feedback during development.

As this project makes no assumptions about how your persist your messages in between reloads, you have to clear that cache yourself to reinitialize the program. If you, for example, decided to use localStorage, you can call localStorage.clear() in the developer-console to do so.

A small example can be found here.