Skip to content

Repository files navigation

dotty-continuations

Monorepo for CPS-related compiler plugins for Scala 3. Experimental proof-of-concept.

Status: Proof of Concept. These projects are experimental and not intended for production use.

Modules

Module Description
core/ Shared compiler plugin base traits (SPI, phase scaffolding). Not a plugin itself — bundled into each plugin's jar.
shift-reset-plugin/ Classical delimited continuations: shift/resetControlContext[A, R]
reify-reflect-plugin/ Monadic embedding: reify/reflectCpsMonad[M] typeclass, works with any M[_]
eff-plugin/ Direct-style Atnos Eff: perform/effEff[R, A], calls effPure/effFlatMap/effMap directly
heftisca/ Hefty Algebras PoC (higher-order effects on atnos-eff): Hefty[H, A]elaborateEff[R, A]. effects/lang are sandbox
hefty-virtualization-plugin/ Higher-order control IR on heftisca: HeftyScope/hefty/performHHefty[CtlH[R], A]elaborateCtlEff[R, A]

Dependency graph

core/ ──────────────────────────────┐
  (bundled into each plugin jar)    │
                                    ▼
shift-reset-plugin/library ─── shift-reset-plugin/plugin
        │
        ├── shift-reset-plugin/integration-tests
        ├── shift-reset-plugin/integration-tests-neg
        └── shift-reset-plugin/sandbox/

reify-reflect-plugin/library ─── reify-reflect-plugin/plugin
        │
        ├── reify-reflect-plugin/tests
        └── reify-reflect-plugin/sandbox/

eff-plugin/library ─── eff-plugin/plugin
        │
        ├── eff-plugin/integration-tests
        └── eff-plugin/integration-tests-neg

heftisca/core ─── heftisca/sandbox/effects ─── heftisca/sandbox/lang ─── heftisca/sandbox/lang/macro
        │
        ▼
hefty-virtualization-plugin/control ─── hefty-virtualization-plugin/library ─── hefty-virtualization-plugin/plugin
                                                │                                        │
                                                │                                        ├── hefty-virtualization-plugin/integration-tests
                                                │                                        └── hefty-virtualization-plugin/integration-tests-neg
                                                └── hefty-virtualization-plugin/sandbox/{basic,monix,amb,shift-reset}

Development

# All tests
sbt test

# Per-module
sbt corePlugin/test
sbt shiftResetAll/test
sbt reifyReflectAll/test
sbt effAll/test
sbt heftiscaAll/test
sbt heftyVirtualizationAll/test

# Negative compilation tests (shift-reset)
sbt shiftResetNegTest

Module READMEs

Acknowledgements

Development of this project was assisted by Claude Code (Anthropic) and Codex (OpenAI).

License

MIT License — Copyright 2026 Hiroshi Yamaguchi @hiroshi-cl

About

A Scala 3 continuation-based compiler plugin PoC collections

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages