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.
| 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/reset → ControlContext[A, R] |
reify-reflect-plugin/ |
Monadic embedding: reify/reflect → CpsMonad[M] typeclass, works with any M[_] |
eff-plugin/ |
Direct-style Atnos Eff: perform/eff → Eff[R, A], calls effPure/effFlatMap/effMap directly |
heftisca/ |
Hefty Algebras PoC (higher-order effects on atnos-eff): Hefty[H, A] → elaborate → Eff[R, A]. effects/lang are sandbox |
hefty-virtualization-plugin/ |
Higher-order control IR on heftisca: HeftyScope/hefty/performH → Hefty[CtlH[R], A] → elaborateCtl → Eff[R, A] |
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}
# 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- core/README.md
- shift-reset-plugin/README.md
- reify-reflect-plugin/README.md
- eff-plugin/README.md
- heftisca/README.md
- hefty-virtualization-plugin/README.md (spec index)
Development of this project was assisted by Claude Code (Anthropic) and Codex (OpenAI).
MIT License — Copyright 2026 Hiroshi Yamaguchi @hiroshi-cl