Andreas Rumpf
Andreas Rumpf
How about: ```nim proc swallowIO(callback: proc () {.tags: IOEffect.}) {.tags: [].} = {.cast(tags: []).}: callback() ``` And now please complete this sentence: "swallowIO is not an effect handler as the...
Well but you cannot undo an IO operation so what does a real effect system do differently? Feel free to change the example to some other effect that might make...
But Haskell does not have an effect system, only a type system. The point of an effects system is its orthogonality with the type system, an expression `x` has the...
I studied Koka a bit fwiw in order to finally understand what an effect handler actually is. And you're right, Nim doesn't have these. I don't agree these are required...
Many of these should be `uint8` though.
It doesn't introduce new bugs but it doesn't clean up the types either.
The idea is smart but why do you need it? So you use `nim c proj` once, the invokations are cached and then `nim check` succeeds? Would work I guess.
The question is: Is the outlined workflow good enough for you?
Cannot see a flaw in this proposal, hence "accepted". Hopefully we didn't overlook something.
You can use `when defined(nimcheck)`