4 ms·
GHC does non-strict evaluation as well as tail call optimization, and it offers pretty decent stack traces. The team that implemented them wrote a paper on how
by tsuraan 9y ago
GHC does non-strict evaluation as well as tail call optimization, and it offers pretty decent stack traces. The team that implemented them wrote a paper on how they did it, including how they fold mutually recursive calls in the call stack representation so that a normal Haskell program won't cause unbounded growth of the stack representation: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/DebugTraces.pdf https://www.microsoft.com/en-us/research/wp-content/uploads/...
I wouldn't expect the same from an OO language, but I'm not sure that it's impossible either.