In the game braid, you can undo your moves and step backwards in time if you mess up. I wanted to replicate that for programming.
How it works
The debugger capture the state of the entire program after stepping forwards, and adds it to a stack. Then, when you step backwards, you can just pop a state off the stack. This allows you to "time travel" though your program.
Challenges I ran into
Communicating between the web and the server was annoying.
Accomplishments that I'm proud of
This is one of the bigger haskell programs I've worked on, it's pretty cool as well.
What I learned
- managing state
What's next for The Time Travelling debugger
Make a version for a mainstream language like python.