Tim Whiting
Tim Whiting
Okay, I think I see your point. For normal effects, the operations and handlers are separate, there is an optimized "dynamic lookup" for the closest handler, which we cannot always...
Yes. I believe that sums it up. Going with the value level solution, you could then choose to call other operations on the handler when certain errors happen (to reinitiate...
Ideally we would desugar during parsing. Or at the very least statically prior to typechecking. One issue with your proposed `vec{0, 1, 2}` is that it is not obvious that...
I believe the above desugaring should support both. Though backend optimizers might only support efficiently inlining literals.
The main thing that I'm concerned with this proposal is making sure that we make sure we are open to map literals, as well as anonymous struct types (canonicalized of...
Reading through the paper again, their main argument is related to problems with constraint based type systems. Koka uses something closer to simple Hindley Milner so it does not have...
Unfortunately this is a pretty hard thing to fix. We don't want to mangle all the names in the program, because that would make C interop harder. At the same...
I think changing the generated C code is probably the best option. We also should probably document the naming / calling convention for generated code and possibly allow some sort...
@anfelor That is what we should be doing with vector, however, the implementation actually copies the vector for the `map` api currently. Additionally while the documentation says map uses a...
By destructive updates and immutability, we mean the following (@anfelor correct me if I'm wrong): ``` fun main() var a := vector-init-total(10, fn(i) i) val b = a a[0] :=...