elm の =
elm の = は一見代入してるようだけど 関数が定義されてて評価時に実行されてるみたい

> a = 10
10 : number
> b = a + 1
11 : number
> b
11 : number
> a = 11
11 : number
> b
12 : number

b が 11 になった後に計算に使ってる a を変えると b も変わる

a = a + 1

っていうインクリメント的な物を書いたら a の結果を取得するときに

a + 1
(a + 1) + 1
((a + 1) + 1) + 1

みたいに無限ループになる

なのでこれを実行すると cyclic definition のエラーメッセージが表示される

-- CYCLIC DEFINITION ------------------------------------------------------ REPL


The `a` value is defined directly in terms of itself, causing an infinite loop.

2| a = a + 1
^
Are you are trying to mutate a variable? Elm does not have mutation, so when I
see a defined in terms of a, I treat it as a recursive definition. Try giving
the new value a new name!

(略)

メッセージの 「Are you are」 はすでに修正済みだったので まだ修正版が npm の最新版になってないだけみたい
https://github.com/elm/compiler/issues/2046
elm をマウントした環境で使うとダメっぽい
npm とかもだけど Windows 環境を Linux でマウントするとダメなの多い

elm だとシンボリックリンクじゃなくて書き込み削除でエラーが出る
elm reactor を実行していてページを開いたら読み込みが遅くて

elm-make: it-is-safe-to-delete-this-file.js: hClose: hardware fault (Input/output error)

というエラーが起きた
マルチスレッドでの処理が影響してるらしい
このファイル名のファイルが出来てて中身が壊れてる
前半が表示できないバイナリデータで後半が JavaScript の文字列

エラーメッセージからすると elm-make でエラーだから直接コンパイルしても一緒同じになりそう
リロード繰り返してるとたまに開けるけどすごく時間待たされる

windows 上でやるとエラーもなくほぼ一瞬だったから Node.js で動くものなら Windows でやったほうが楽そう
elm repl でエラーが出るとき
> elm repl
/home/user/n/lib/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm-repl: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

ってエラーが出るとき

ncurses-compat-libs をインストールすれば使えるようになる (最近の fedora の場合)

sudo dnf install ncurses-compat-libs