Jonathan Immanuel Brachthäuser
Jonathan Immanuel Brachthäuser
``` def main() = { with x = handler; p() } ``` desugars to ``` def main() = { handler { x => p() } } ``` ``` def main()...
I am not sure whether we ever supported that, but I guess we could. At least in the last version it seems to be like today: https://github.com/effekt-lang/effekt/blob/523e11bea6c862935c86e84f8660a4d88574b95d/effekt/shared/src/main/scala/effekt/Parser.scala#L733
Otherwise looks very good to me.
notes: direct style first
Superseded by #432
Minor comment: we do not use `scala-parser-combinator`s but the Kiama library. The thing that I am most afraid of is that we introduce a lot of regressions when it comes...
The problem is the positions which mostly die up in error messages and with LSP. Adding those tests could be a lot of work.
yes, main point is that it is very confusing the way it is now. For an IR `return` is fine, for the source language, the way it currently is, is...
It needs to be `Control[Unit]` since in the case of not returning early we would otherwise need to make up an `R`. Actually, same for `map`, where we IIRC use...
There are only two options, right? Either it aligns with break, or it restarts :)