Elm's Time-Traveling Debugger
How much overhead does this add and how difficult would it be to implement in another language like Python or even C? I imagine implementing it for an interpreted language would be much easier if you could save and recover states at any given point.For example, in a project I just completed where we implemented Scheme in C, perhaps we could just memcopy everything and add it to a stack upon each expression evaluation (much easier in Lisp dialects since expressions are nested and you could 'edit as you go' by just changing an inner expression).