Jonathan Immanuel Brachthäuser
Jonathan Immanuel Brachthäuser
TBH it took me quite a while to understand this error... The parser parses it as ```scala def e: Eff = new Eff { () => def op() = println("42")...
@jiribenes what would you expect as an error message? We could also forbid parsing it as single operation in case it starts with `def`
I wouldn't know an elegant way to prevent it though. https://github.com/effekt-lang/effekt/blob/49f2166f85c228b6169d1e7d0c1f508081c5551a/effekt/shared/src/main/scala/effekt/Parser.scala#L426-L437 The parser for implementation reuses `functionArg` which admits the program you wrote.
> `Boolean` to `Bit` I fear this will confuse everybody. Almost all languages have booleans (or i2 ;) ). What about `Bool`? > `type` to `datatype` I know that this...
this is hopefully already addressed by #272
Let's not take this pun too far. I'd like to pick keywords primarily for three reasons: - how easy they are to use (interface is not here here, too long)...
Yes, this is on our map for quite some time. I have thought a bit about it: most of it should be fairly straight forward. There are a few things...
> On the plus side, this also allows individual backends to decide that, e.g., Boolean is a data type (not builtin) But wouldn't this also require overloading literals `true` and...
> For `Ref` [...] TBH I don't understand the discussion. Are you talking about "how can we figure out the correct symbols for state in Typer"?
Singleton objects currently work (just with a different keyword -- `effect` instead of `operation`). https://github.com/effekt-lang/effekt/pull/361/commits/87133e558f5b502be54923b8eafb039981ecede2 However the second variant, that you said should not work, is what is currently implemented....