Great blog post! I only have a theoretical understanding of algebraic effects so far and have yet to use them in practice, so please excuse this likely dumb question: In functional/declarative programming languages variable declarations can be evaluated in any order, as long as they don't depend on each other. Now if both declarations involve calls to functions with side effects, what determines the order in which these effects will be executed?