Home

Awesome

Maven Central

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.

image


You can run included demos using scala-cli. Turbolift requires ⚠️Java 11⚠️ or newer.

  1. 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  
  1. 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