Solve the fixedpoint of a dataflow problem.
Complexity: O(N+H*E) calls to the update function where:
N = number of nodes,
E = number of edges,
H = maximum height of the lattice for any particular node.
Sketch for proof of complexity:
Note that the state is threaded through the entire execution.
Also note that the height of the latice at any particular node
is the number of times update can return nonNothing for a
particular node. Every call (except for the top level one)
must be caused by a nonNothing result and each nonNothing
result causes as many calls as it has outgoing edges.
Thus any particular node, n, may cause in total at
most H*out(n) further calls. When summed over all nodes,
that is H*E. The N term of the complexity is from the initial call
when update will be passed Nothing.
