Elm Links

[Martin Janiczek: elm-bench https://martinjaniczek.gumroad.com/l/elm-bench] [Rupert https://discourse.elm-lang.org/t/elm-stack-saver/10512]

This might come in handy if you are having issues with stack overflows. It tries to detect all recursion which is not tail optimized. It will detect individual recursive functions as well as mutually recursive cycles of functions, and also functions defined inside let..in blocks.

There are some more ‘dynamic’ situations it can miss, such as if recursion happens within runtime created closures.

It works by scanning an elm.js compiler output and building the call graph from that, then applying Tarjan’s algorithm to detect cycles. The JS function names are converted back into Elm formatted names, unless you specified the –jsnames CLI option.