effekt-lang / effekt-lang/effekt

Redesign core

Open
#613 1 comment 0 reactions 0 assignees View on GitHub
requires-design
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.