effekt
effekt copied to clipboard
A research language with effect handlers and lightweight effect polymorphism
Namer already generates fresh names (if there are multiple definitions in the same scope). This is way overloaded definitions can be uniquely addressed. However, this is confusing responsibilities. Making generated...
In the SystemC branch, `Substitution` has largely been reimplemented / refined. In particular, we moved away from using mutable references within region unification variables in favor of explicitly substituting. https://github.com/effekt-lang/effekt/blob/system-c-steps/effekt/shared/src/main/scala/effekt/Substitution.scala...
the other backends perform whole program generation. In order to use the generated program from javascript again (other than just calling `main`) we need some form of exports (like with...
It would be great, if we could have existential type and effect members on interfaces.
We should consider adding polymorphism not only for value types, but also block types. Before adding it to the language, we should formalize it in our Coq proofs.
We should consider adding typeclasses or similar to prevent repeating code such as sorting datastructures, etc.
We should reconsider the design of records and datatypes / variants. Some form of structural subtyping could prove to be more convenient / flexible to use.
In our System C implementation, we have builtin support for [local regions](https://se-tuebingen.github.io/oopsla-2022-artifact/casestudies/regions.html): ``` region r { var x in r = 1; val closure = box { () => x...
As part of our work on the OOPSLA'22 paper https://se-tuebingen.github.io/oopsla-2022-artifact/ , we developed System C, a language similar to Effekt, but with explicit capability passing. As an important next step,...
It would be nice to have a language specification similar to the [Koka book](https://koka-lang.github.io/koka/doc/kokaspec.html). For starters it is good to collect examples in `examples/ `. The website could include some...