New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How does eff
implement delimited control?
#1
Comments
There are several subtleties here:
These requirements inform the “calling convention” used by eff/eff/src/Control/Effect/Internal.hs Lines 283 to 286 in 8c4df4b
I still need to write up the appropriate Note to explain the full subtleties, but I’ll try to give a brief, high-level explanation here:
Another way of putting this is that we’re effectively using RTS exceptions as a way to determine whether or not a use of |
Thanks for the writeup! The point about tail calls is indeed very subtle and helps me understand why
|
I am reading
eff
's source code and I saw that in thecontrol
operation, it throws a captured frame up to the handler to deal with, instead of resuming it in place. To me (who probably does not have enough context), this seems like extra indirection. What is the motivation for this design?The text was updated successfully, but these errors were encountered: