effekt-lang / effekt-lang/effekt
Redesign core
- Dominant language
- Scala
- Stars
- 469
- Forks
- 41
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 23
Description
Every few months/years we redesign core. It is again time.
There are some universally accepted requirements, some nice to haves, and some controversial things.
## Universally Accepted
- [x] move away from handlers to delimited control
- [x] delimited control should ALWAYS be bidirectional
- [x] reset binds a label / prompt, shift refers to a label.
- [x] have separate `invoke`
- [x] have separate `make` or similar for constructor calls
## Nice to have
- group arguments and parameters in separate data type
- add syntactic category of "binder"
- track the original source location in the AST
## Controversial
- shallow resumptions
- ~replace `run` by `let x = run s; s`~ (we dropped run)
- ~also include expression level if, defs, with separate calling convention.~ (not for now at least)
- what about subtyping? Where do we allow it?
- bound type variables as DeBruijn
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.