The problem is in this file:
This file describes the generic model description used in the debugger. It turns your statically typed model into a “dynamically typed” Expando, which is the data structure used to render the model on the right side (including open/closed states).
Because it needs to do the Cons (::
) after it calls mergeListHelp
, this call is not tail-recursive. It’s esentially a map iterating 2 lists at once, which itself is essentially a right fold. Except that unlike List.map
and List.foldr
, this function does not include special handling of deep recursive structures.
Because the Debugger is only loaded when enabled (duh!), it works without it.
PS: The Elm Debugger is just another (special) Elm App. I think that’s pretty awesome!