b-studios/scala-effekt
51.9
Weak · 20 September 2026
443
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a discontinued Scala library that provided a framework for managing computational effects such as state, exceptions, and non-determinism. It implemented a handler-passing model using delimited control and trampolining to prevent stack overflows, offering concrete effect handlers for side-effect management. The project has been superseded by the standalone Effekt language and is no longer under active development.
Features
New effect handlers for state, exceptions, and non-determinism
The effects module now includes concrete implementations for common computational effects, providing ready-to-use handlers for state management, exception handling, and non-deterministic choice. Users can now leverage the State effect to manage mutable state via get/put operations, handle exceptions through the Exc effect with support for converting between effect-based and native exceptions, and model non-determinism using the Amb effect for binary choices or the Select effect for multi-way branching. These additions offer a standardized way to compose and handle side effects in programs.
effects · high confidence
Removals
Removal of Effekt runtime core components
The Effekt runtime implementation has been removed from the codebase. This change deletes the core files defining the effect system's architecture, including the \Capability\ trait, the \Control\ monad for handling continuations and state, the \Eff\ trait for effect definitions, the \MetaCont\ sealed trait for managing the continuation stack, and the \package.scala\ exposing the public API (\pure\, \use\, \handle\). Users can no longer utilize these specific runtime primitives for effect handling and control flow.
src/main · high confidence
Behavioural changes
Introduce new delimited control and effect handler API
The shared library now provides a new implementation for delimited control and effect handlers, replacing the previous capability-passing model with a handler-passing approach. This change introduces the \Control\ monad for managing effectful computations, along with \Handler\ and \Stateful\ traits that allow users to define and interact with effects. Key additions include support for stateful handlers via the \State\ trait, exception handling through \CatchMarker\, and new monadic operations in \Control\. The API is grounded in the multiprompt delimited control monad framework, offering a more direct mapping to the theoretical paper while maintaining backward compatibility for existing effect usage patterns.
shared · high confidence
Project discontinued and documentation updated
The Scala Effekt library is officially discontinued, with development superseded by the standalone Effekt language. The README has been updated to reflect this status, provide disambiguation guidance, and include usage instructions for the final version (0.4-SNAPSHOT) compatible with Scala 2.12 and 2.13. Additionally, the project now includes an MIT license, a .gitignore file, and a Scala Steward configuration.
(repo-wide) · high confidence
Refactor control-flow representation to use trampolining and explicit markers
The repository's internal control-flow mechanism has been restructured to prevent stack overflows by introducing a trampoline-based execution model. This change replaces the previous state-passing approach with a handler-passing model, utilizing new \MetaCont\ and \Result\ types to manage continuations. The implementation now explicitly distinguishes between different control effects using dedicated markers (\ContMarker\, \StateMarker\, \CatchMarker\) and frame types, allowing for more precise handling of state, exceptions, and continuations within the interpreter.
repository · high confidence
Dependencies
Initial project setup with Scala 3.9.0 and Cats 2.13.0
The build configuration introduces support for Scala 3.9.0 alongside Scala 2.12.21 and 2.13.18, and adds the Cats library (version 2.13.0) as a dependency for the effects module.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 52.
Lenses
- Code Health 100
- Architecture 69
- Maturity 54
- Readiness 37
- Security 80
Changes since last survey
- 300 commits — 300 feature/other, 0 fixes
By area
- (root) — 86 commits
- project/build.properties — 83 commits
- .github/workflows — 80 commits
- project/plugins.sbt — 47 commits
- docs/docs — 2 commits
- .github/CODEOWNERS — 1 commit
- .github/dependabot.yml — 1 commit
Notable commits
- change: Also update README
- change: Bump JamesIves/github-pages-deploy-action from 3.7.1 to 4.0.0
- change: Bump JamesIves/github-pages-deploy-action from 4.0.0 to 4.1.0
- change: Bump JamesIves/github-pages-deploy-action from 4.1.0 to 4.1.1
- change: Bump JamesIves/github-pages-deploy-action from 4.1.1 to 4.1.3
- change: Bump JamesIves/github-pages-deploy-action from 4.1.3 to 4.1.4
- change: Bump JamesIves/github-pages-deploy-action from 4.1.4 to 4.1.5
- change: Bump JamesIves/github-pages-deploy-action from 4.1.5 to 4.1.6
- change: Bump JamesIves/github-pages-deploy-action from 4.1.6 to 4.1.7
- change: Bump JamesIves/github-pages-deploy-action from 4.1.7 to 4.1.8
- change: Bump JamesIves/github-pages-deploy-action from 4.1.8 to 4.2.1
- change: Bump JamesIves/github-pages-deploy-action from 4.2.1 to 4.2.2
- change: Bump JamesIves/github-pages-deploy-action from 4.2.2 to 4.2.3
- change: Bump JamesIves/github-pages-deploy-action from 4.2.3 to 4.2.5
- change: Bump JamesIves/github-pages-deploy-action from 4.2.5 to 4.3.0
- change: Bump JamesIves/github-pages-deploy-action from 4.3.0 to 4.3.2
- change: Bump JamesIves/github-pages-deploy-action from 4.3.2 to 4.3.3
- change: Bump JamesIves/github-pages-deploy-action from 4.3.3 to 4.3.4
- change: Bump JamesIves/github-pages-deploy-action from 4.3.4 to 4.4.0
- change: Bump JamesIves/github-pages-deploy-action from 4.4.0 to 4.4.1
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
b-studios/scala-effekt was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7d6b936cdb441f4b77e35a0bdbcbe4819c39763a — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.