effekt
effekt copied to clipboard
A research language with effect handlers and lightweight effect polymorphism
Right now `return` is a keyword but only used to embed expressions into statements. This is fine for a core representation like System C, but not appropriate for source. That...
Currently we define extern definitions for each backend separately in a different file and then select which of these files to include based on which backend we are compiling with....
Sometimes we need to eta-expand block parameters to enable contextual effect polymorphism. For example, ``` effect Ask1(): Int effect Ask2(): Int def asks() = { do Ask1() + do Ask2()...
Currently, we use "user defined effects" in an error message when signalling that a required effect isn't handled in `main`. https://github.com/effekt-lang/effekt/blob/6f8973ae77e4962b67b3cb626142fab7430a6cd8/effekt/shared/src/main/scala/effekt/context/ModuleDB.scala#L86 Perhaps we should say simply "effects" instead :) Note...
I tried to define some effects with impure arities / coarities (i.e., impure parameter and result types) but I failed. I wonder if this is possible in Effekt without using...
Closes #396. I also added collapsible items for imports and namespaces. ![image](https://github.com/effekt-lang/effekt/assets/32108934/a131e05c-8698-4eac-9649-1a22b2fb436f) I'm not sure how to get the types of sub-level symbols yet, so I just put a '?'...
This PR closes #367. Together with https://github.com/effekt-lang/kiama/pull/1 and https://github.com/effekt-lang/effekt-vscode/pull/16, this should result in first steps towards more intelligent LSP intelligence. Main things still missing: - Better symbol selection; for now...
We should support interfaces to mention themselves in their own methods: ![image](https://github.com/effekt-lang/effekt/assets/408265/a75642ea-0b91-46b3-baa1-0b6299e713b2) The error message is also really confusing. We should stop talking about bidirectional effects and find a more...
We infer types but then don't show them, which is sad. The symbols outline could show them making it a bit more useful ![image](https://github.com/effekt-lang/effekt/assets/408265/6c86cf22-e47d-46bf-ae88-e75619c5ef03) This could for starters look very...
Most operating systems (e.g. GNU/Linux, BSDs) treat all text after the first space as a single argument. When using env in a script it is thus not possible to specify...