Debug as an Effect (DaaE)

April 21, 2025 ยท View on GitHub

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.

Important

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