DEV Community

Discussion on: Algebraic Effects in JavaScript part 4 - Implementing Algebraic Effects and Handlers

Collapse
 
aimergenge profile image
aimergenge • Edited
// Just a graph for Example 2
// assume: A <- B represent that B's _return is A
// main <- withHandlerGen(outer) <- withHandlerGen(inner) <- parent <- child
// main <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B) <- handlerGen(inner, C) <- withHandlerGen(inner) <- parent <- child
// main <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B) <- handlerGen(inner, C) <- withHandlerGen(inner) <- theReturnHandlerGen(inner)
// main <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B) <- handlerGen(inner, C)
// main <- handleGen(outer, C) <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B) <- handlerGen(inner, C)
// main <- handleGen(outer, C) <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B)
// main <- handleGen(outer, C) <- handlerGen(outer, B) <- withHandlerGen(outer) <- handlerGen(inner, A) <- handlerGen(inner, B)
// main <- handleGen(outer, C) <- handlerGen(outer, B) <- withHandlerGen(outer) <- handlerGen(inner, A)
// main <- handleGen(outer, C) <- handlerGen(outer, B) <- handlerGen(outer, A) <- withHandlerGen(outer) <- handlerGen(inner, A)
// main <- handleGen(outer, C) <- handlerGen(outer, B) <- handlerGen(outer, A) <- withHandlerGen(outer)
// main <- handleGen(outer, C) <- handlerGen(outer, B) <- handlerGen(outer, A) <- withHandlerGen(outer) <- theReturnHandlerGen(outer)
// main