Awesome
Debug as an Effect (DaaE)
Tiny debugger, implemented with Algebraic Effects.
Inspired by stepwise for Unison language.
In this announcement post on Twitter, the author linked this 3-minute video, showing the debugger in action.
This project is a reimplementation of the idea in Scala, using Turbolift effect system.
You can run included demos using scala-cli
. Turbolift requires ⚠️Java 11⚠️ or newer.
- OriginalDemo - The original demo from stepwise, shown in the video. Translated to Scala.
scala-cli https://raw.githubusercontent.com/marcinzh/daae/master/modules/demos/src/main/scala/demos/OriginalDemo.scala
- TreeWalk - Using multiple effects. Demonstrates that when
Debug
goes back in time, local state (e.g.Reader
,State
,Writer
) gets restored as well.
scala-cli https://raw.githubusercontent.com/marcinzh/daae/master/modules/demos/src/main/scala/demos/TreeWalk.scala